实现这样的效果关键在于对输入文字的控制richTextBox__TextChanged事件的应用
private void richTextBox2_TextChanged(object sender, EventArgs e){//判断输入长度if (richTextBox2.Text.Length != 0){length = richTextBox2.Text.Length;index = length;ch = richTextBox2.Text.ToCharArray();//把输入的字符串转化为字符数组for (i =0; i < index; i++)//遍历字符数组,让每个字和文中的内容一一比较{if (ch[i] != ch1[i])//ch1是文本中的字{//如果输入的字和上文中的字不一样,选中这个字,让选中的字变成红色richTextBox1.Select(i, 1);richTextBox1.SelectionColor = Color.Red;}}}}
窗体载入时初始化文中的字符数组
private void Form1_Load(object sender, EventArgs e){ch1 = richTextBox1.Text.ToCharArray();richTextBox2.Select(0, 0);}
然后是如果退格的话让字重新变为黑色
private void richTextBox2_KeyPress(object sender, KeyPressEventArgs e){if (e.KeyChar == \'\\b\'){richTextBox1.Select(index, 1);richTextBox1.SelectionColor = Color.Black;}}
label1标签是用来显示时间,当然还有记录成绩都在打字小游戏(一)中有描述,就不重复说明。
- 点赞
- 收藏
- 分享
- 文章举报
醉雪成歌发布了8 篇原创文章 · 获赞 0 · 访问量 200私信关注