我有一个奇怪的问题,我的 .net win 表单应用程序触发了第三方 CRM 应用程序。当客户使用 CRM 应用程序并单击我的应用程序中的某个按钮时,第一次单击该按钮不会触发事件,只有在第二次单击时它才会响应。
我怀疑的原因是我的应用程序没有聚焦。
我尝试了以下代码
private void XXXXX_MouseHover(object sender, EventArgs e)
{
this.BringToFront();
this.Focus();
}
但是它不起作用。我是 .Net 的新手,谁能告诉我如何解决这个问题?
非常感谢任何帮助。
更新:我的工具条按钮。
btnbutton.Click += delegate(object sender, EventArgs e)
{
//some code to execute on button click.
};
谢谢
最佳答案
当应用程序没有焦点时,.NET 工具条会忽略点击。这就像 Words 的工作原理一样。这里的想法是用户可以单击窗口中的“任意位置”而不必担心他实际上执行了一个操作。只有当窗口有焦点时,点击才会“计数”。
帖子在http://blogs.msdn.com/b/rickbrew/archive/2006/01/09/511003.aspx描述了如何解决这个问题。基本上,您从 ToolStrip
继承并覆盖 WndProc
,并将 WM_MOUSEACTIVATE
和 MA_ACTIVATEANDEAT
结果更改为 MA_ACTIVATE
结果。
关于c# - 如何自动聚焦在后台运行的 .Net winform 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17311470/