private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (click_counter > 0)
{
click_counter = 0;
return;
}
if (e.KeyCode == Keys.S)
{
searchButton.PerformClick();
}
}
我将此代码添加到具有webbrowser对象的表单源代码中。 当我点击字母“S”时,问题是消息框弹出3次。
我该如何解决这个问题?
由于 编辑:删除MessageBox.Show建议!
解决:我通过解决方法解决了这个问题。我不能称之为真正的解决方案。我所做的是在开头添加一个if条件来控制点击次数。欢迎任何更好的解决方案!
答案 0 :(得分:2)
不在事件处理程序中使用MessageBox,它会引发一个消息循环,这会极大地干扰正常的事件流。特别是由于Windows通知引发并由消息循环调度程序提供的类型,如PreviewKeyDown。
使用Debug.Print()在“输出”窗口中显示诊断。当然不要忘记调试器断点。