当前位置: 移动技术网 > IT编程>开发语言>c# > C# KeyUp事件中MessageBox的回车(Enter)键回调问题解决方案

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

2019年07月18日  | 移动技术网IT编程  | 我要评论
本文解析了c# keyup事件中messagebox的回车(enter)键出现回调问题的解决办法。具体问题如下: 在一个窗体上有一个名为txttest的textbox控件

本文解析了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里将不会再出现回车键回调的问题。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网