C# KeyUp事件中MessageBox的回车(Enter)键回调问题解决方案

时间:2021-05-20

本文解析了C# KeyUp事件中MessageBox的回车(Enter)键出现回调问题的解决办法。具体问题如下:

在一个窗体上有一个名为txtTest的Textbox控件,如果在此控件的KeyUp事件中有按回车键 弹出messagebox消息框,那么在弹出的messagebox中如果按回车键去执行messagebox上的按钮,再回车键还会在KeyUp事件中继续执行。一直按回车键的话将循环进行。

代码如下所示:

private void txtTest_KeyUp(object sender, KeyEventArgs e){if (e.KeyCode == Keys.Enter){if (MessageBox.Show("输入完了?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question)== System.Windows.Forms.DialogResult.Yes){this.lblTest.Text = this.txtTest.Text;}}}

为了避免这种情况出现,可以把KeyUp里的程序移到KeyDown事件中即可

private void txtTest_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode == Keys.Enter){if (MessageBox.Show("输入完了?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question)== System.Windows.Forms.DialogResult.Yes){this.lblTest.Text = this.txtTest.Text;}}}

这样在KeyDown里将不会再出现回车键回调的问题。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章