C# 我如何捕捉“的;输入“;输入windows窗体?

C# 我如何捕捉“的;输入“;输入windows窗体?,c#,textbox,keypress,enter,C#,Textbox,Keypress,Enter,我试图获取文本框的文本,并在用户按下enter键时将其保存到一个变量中(当文本框有信息且已聚焦时),因为这已经在一个方法中,我无法将另一个方法放入其中,如txtbox1\u keypress(或者我一直在做错事)所以我需要的只是代码行,我可以插入到这个方法中 private void df1_Click(object sender, EventArgs e) { txtres.Focus(); //timer timeLeft = 50; timer1.Start

我试图获取文本框的文本,并在用户按下enter键时将其保存到一个变量中(当文本框有信息且已聚焦时),因为这已经在一个方法中,我无法将另一个方法放入其中,如txtbox1\u keypress(或者我一直在做错事)所以我需要的只是代码行,我可以插入到这个方法中

private void df1_Click(object sender, EventArgs e)
{
    txtres.Focus();
    //timer
    timeLeft = 50;
    timer1.Start();
    //mult
    do
    {
        ban = 0;
        m1 = r.Next(1, 4);
        txtm1.Text = m1.ToString();
        m2 = r.Next(2, 6);
        txtm2.Text = m2.ToString();
        res = m1 * m2;
        //here is where i want to read txtm2 and continue with the rest
        if(txtres.Text == res.ToString())
        {
            pun++;
        }
        ban++;
    } while (timeLeft > 0 || ban != 10);
    if(pun == 10 && level == 0)
    {
        level++;
        System.IO.File.WriteAllText(@".\level.lvl", level.ToString());
    }
}

由于您提到要在
KeyPress
事件中运行它,下面是一个示例:

 private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
      if (e.KeyChar == (int) Keys.Enter)
      {
        //do the logic
      }
    }

添加一个按钮作为表单的“接受”按钮,每当按下enter键时都会触发该按钮。

此外,您的循环(do--while)应该在timer1_tick方法内完成,并取出循环,计时器将在它所计时的每个间隔内执行代码,直到计时器达到最大值50。


如前所述,循环将杀死您的GUI,并且不允许输入。

什么?代码示例,带说明。那么您正在运行计时器并希望从文本框中获取用户输入?wll timer不重要,我只想用enter键读取txtres的内容。您试图在UI线程上运行的循环中捕获用户输入;这将不起作用,因为您的UI将对键盘输入无响应。您需要添加另一种方法,称为
EventHandler
,该方法将响应
文本框的
向上键
、或
向下键
、或
按键
事件。