C#实现打字小游戏(二)
程序员文章站
2022-07-16 18:54:34
...
实现这样的效果关键在于对输入文字的控制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标签是用来显示时间,当然还有记录成绩都在打字小游戏(一)中有描述,就不重复说明。
上一篇: C语言实现简易金山打字通
下一篇: c#事件委托