输入按钮在文本框

时间:2017-03-26 18:34:29

标签: c# textbox newline enter

我是c#的初学者,第一次需要你的帮助,因为我无法找到解决这个问题的方法。 我做了一个打字教程,我有一个richtextbox,里面填充了随机生成的字符,空格和3个新行。 用户必须在文本框中键入字符,如果他输入了足够的字符,则字符在richtextbox中变为绿色,他可以键入下一个字符。如果他犯了错误,他就不能移动到下一个角色,直到按下右键。

我的问题是一切正常,除了新线部分。 当程序比较2新线接受新线但是当按下ctrl + enter时,简单输入不会工作,程序以某种方式认为输入是一个错误的字符。 我需要使这个用户友好,并且需要一个简单的输入。

到目前为止我试过这个:

使文本框MultiLine没有任何区别。

将Acceptsreturn更改为true没有任何区别。

将字符串更改为richtextbox的文本,将Environment.Newline更改为\ r和\ n以及\ r \ n并且它没有区别。

将文本框更改为Richtextbox没有任何区别。

我尝试了以上所有可能的组合,但我无法解决问题所在。

这是随机字符生成部分:

public partial class Form1 : Form
{
    char[] karakterek = { 'a','á','b','c','d','e','é','f','g','h','i','í','j','k','l','m','n','o','ó','ö','ő','p','q','r','s','t','u','ú','ü','ű','v','x','y','z' };
    char[] nemkarakterek = {'0','1','2','3','4','5','6','7','8','9','"',',','+','%','/','=',':','-',};
    char egykarakter;
    string teljes = "";
    int mutato = 0;
    Random r = new Random();
    public Form1()
    {
        InitializeComponent();
        karakterfeltolt();

    }
    private void karakterfeltolt()
    {
        int hanyszor = 0;
        do
        {
            string egesz = "";
            if (hanyszor < 3)
            {

                do
                {
                    if (egesz.Length < 150)
                    {
                        if (r.Next(1,15)<14)
                        {
                            egykarakter = karakterek[r.Next(0, karakterek.Length)];
                            egesz = egesz + egykarakter;
                        }
                        else
                        {
                            egykarakter = nemkarakterek[r.Next(0, nemkarakterek.Length)];
                            egesz = egesz + egykarakter;
                        }
                    }
                } while (egesz.Length < 150);

                if (egesz.Length > 150)
                {
                    egesz = egesz.Substring(0, 150);
                }
                int vanespace = 0;
                egesz = egesz.Insert(r.Next(2, 10), " ");
                for (int i = 0; i < egesz.Length - 10; i++)
                {
                    if (egesz[i] == ' ')
                    {
                        vanespace = i;
                        int eselynovelo = r.Next(0, 10);
                        if (eselynovelo > 6)
                        {
                            egesz = egesz.Insert(r.Next(vanespace + 3, vanespace + 10), " ");
                        }
                        else
                        {
                            egesz = egesz.Insert(r.Next(vanespace + 6, vanespace + 10), " ");
                        }
                    }
                }
                string nagybetus = egesz.Substring(0, 1).ToUpper() + egesz.Substring(1);
                nagybetus = nagybetus.Insert(nagybetus.Length, ".\r\n"); 
                teljes = teljes + nagybetus;
                hanyszor++;
            }

        } while (hanyszor < 3);

        richTextBox1.Text = teljes;
    }

这是文本框比较部分:

private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == richTextBox1.Text[mutato])
        {
            richTextBox1.SelectionStart = 0;
            richTextBox1.SelectionLength = mutato + 1;
            richTextBox1.SelectionColor = Color.Green;
            mutato++;
            label2.Text = "OK";

        }
        else
        {
            label2.Text = "Wrong";
            e.Handled = true;
        }

    }

我还能做什么?请帮帮我。

0 个答案:

没有答案