系统:Windows7 Pro,Visual Studio 2010,C#
我有一个文本框:textBox1
我设置了它的事件:
textBox1.KeyUp += new KeyEventHandler(textBox1_KeyUp);
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
button1.PerformClick();
}
}
private void button1_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text))
{
MessageBox.Show("Invalid data", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,问题是,当输入的数据是无效的,因而MessageBox显示,当我打ENTER的MessageBoxOK按钮,这也触发textBox1_KeyUp,从而导致MessageBox再次出现.因此,它会触发MessageBoxOK按钮,使其消失,并触发该按钮,textbox_keyUp然后再次显示消息框.
谢谢你的帮助.
Han*_*ant 19
是的,消息框响应按键事件.你的TextBox也应如此.使用KeyDown事件,问题解决了.还解决了用户通常听到的恼人的BEEP.
private void textBox1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyData == Keys.Enter) {
button1.PerformClick();
e.SuppressKeyPress = true;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10264 次 |
| 最近记录: |