使用没有按钮的文本框,输入执行然后只允许数字

Using textbox with no button , Enter to execute then Only numbers allowed

当我执行它时 运行 但是当我按下 enter 键时消息框仍然出现

for moneytextbox Keydown

         if (e.KeyCode == Keys.Enter)
         {
            int a, b, c;
            a = int.Parse(money.Text);
            b = int.Parse(bill.Text);
            c = a - b;

            change.Text = c.ToString();
        }

for moneytextboxKeypress

 if (!(Char.IsDigit(e.KeyChar) || (e.KeyChar == (char)Keys.Back)))
 {
      MessageBox.Show("please enter digits only");
      e.Handled = true;
 }

我试图解锁按键事件中的回车键

if (!(Char.IsDigit(e.KeyChar) || (e.KeyChar == (char)Keys.Enter))) 
{ 
    MessageBox.Show("please enter digits only"); e.Handled = true; 
} 

但 "message box" 仍然出现

您调用了两次 Keypress,因为一旦您按下键盘上的任何内容,就会触发 keydown 事件。由于您按下 "keypress",keydown 和 keypress 事件处理程序都将被触发。将所有内容放在 keydown 事件处理程序上以处理您的所有请求:

 if (e.KeyCode == Keys.Enter)
        {
            int a, b, c;
            a = int.Parse(label1.Text);
            b = int.Parse(label2.Text);
            c = a - b;

            label3.Text = c.ToString();
            return;
        }

        if (!(Char.IsDigit((char)e.KeyData) || (e.KeyData == Keys.Up)))
        {
            MessageBox.Show("please enter digits only");
        }

并删除 moneytextboxKeypress。