欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#实现打字小游戏(二)

程序员文章站 2022-07-16 18:54:34
...

C#实现打字小游戏(二)
实现这样的效果关键在于对输入文字的控制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标签是用来显示时间,当然还有记录成绩都在打字小游戏(一)中有描述,就不重复说明。