将窗体移到Microsoft程序的前端后未检测到键事件

时间:2019-05-28 23:03:47

标签: c# winforms

我已经在承载所有控件的Form类中重写了ProcessCmdKey事件,并且在移至任何Microsoft应用程序之前,它从未在WinForms应用程序中触发。

当用户在我的WinForms应用程序前面拥有Microsoft应用程序(例如Edge或计算器)时,有时该窗体会移到最前面以引起用户的注意。用户可以按空格键来“单击”表单上的按钮。发生这种情况时,Microsoft应用程序将响应所按下的键,而不是响应表单本身(例如,Edge将在后台向下移动页面)。

使用Chrome或任何其他非Microsoft应用程序时,我无法重现此错误。

发生需要用户注意的事件时,它将运行此代码

this.TopMost = true;

this.Button1.focus();

日志显示在用户按下任何键之前,Button1具有焦点。

我希望这对您很清楚,并且很乐意回答您的任何问题。

非常感谢您!

0 个答案:

没有答案