使用没有按钮的文本框,输入执行然后只允许数字
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。
当我执行它时 运行 但是当我按下 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。