gpt4 book ai didi

C# - 在 MessageBox 中按下 Enter 触发控件 KeyUp 事件

转载 作者:可可西里 更新时间:2023-11-01 08:38:23 25 4
gpt4 key购买 nike

系统: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;
}
}

它工作正常,问题是,当输入的数据无效时,因此显示 MessageBox,当我在 MessageBox< 上按 ENTER OK 按钮,它还会触发 textBox1_KeyUp,从而导致 MessageBox 再次出现。因此,它会触发 MessageBox OK 按钮,这会导致它消失,还会触发 textbox_keyUp,然后会导致消息框再次出现。

感谢您的帮助。

最佳答案

是的,消息框响应按键按下事件。你的文本框也应该如此。改为使用 KeyDown 事件,问题已解决。还解决了用户通常听到的烦人的哔哔声。

    private void textBox1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyData == Keys.Enter) {
button1.PerformClick();
e.SuppressKeyPress = true;
}
}

关于C# - 在 MessageBox 中按下 Enter 触发控件 KeyUp 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3538842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com