当我执行它时会运行但是当我按下回车键时仍会出现消息框
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;
}
但“消息框”仍然出现
答案 0 :(得分:0)
您正在两次调用Keypress,因为一旦按下键盘上的任何内容,就会触发keydown事件。由于您按下“按键”,将触发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。