如何在窗体中捕获“Enter”键?

问题描述:

我想获得一个文本框的文本,并保存到一个变量当用户按下输入键(当文本框有信息和被集中),因为这已经是我已经无法把方法另一种方法里面像txtbox1_keypress(或我已经做了错误的),所以我需要只是行代码,我可以在这个方法中如何在窗体中捕获“Enter”键?

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()); 
    } 
} 
+0

什么?代码示例,附有解释。 –

+0

所以你正在运行一个计时器,并希望从文本框中获得用户输入? – dotctor

+0

wll定时器无所谓,我只是想用一个输入键读取txtres的内容 –

既然你提到要运行它里面KeyPress事件插入,在这里是例子:

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

添加一个按钮作为窗体的接受按钮,这将触发wheneve输入被按下。

此外,你的循环(做 - 而)应timer1_tick方法中完成,并采取了循环,直到计时器达到最高的50

定时器将执行每次蜱区间内的代码如前所述,循环会杀死你的GUI,它不会允许输入。