如何自动聚焦在后台运行的.Net winform应用程序

本文关键字:Net winform 应用程序 运行 后台 何自动 聚焦 | 更新日期: 2023-09-27 18:19:50

我有一个奇怪的问题,我的.net win表单应用程序触发了第三方CRM应用程序。当客户使用CRM应用程序并单击我的应用程序中的某个按钮时,第一次单击按钮不会触发事件,只有第二次单击时它才会响应。

我怀疑的原因是我的应用程序没有聚焦。

我尝试使用以下代码

private void XXXXX_MouseHover(object sender, EventArgs e)
    {
        this.BringToFront();
        this.Focus();
    }

但这并不奏效。我是.Net的新手,有人能告诉我如何解决这个问题吗?

非常感谢您的帮助。

更新:我的toolstrip按钮。

btnbutton.Click += delegate(object sender, EventArgs e)
        {
             //some code to execute on button click.
        };

感谢

如何自动聚焦在后台运行的.Net winform应用程序

当应用程序没有焦点时,.NET工具条会忽略单击。这就像Words的工作原理一样。这里的想法是,用户可以点击窗口中的"任何地方",而不必担心他实际上执行了一个操作。只有当窗口有焦点时,点击才会"计数"。

上的帖子http://blogs.msdn.com/b/rickbrew/archive/2006/01/09/511003.aspx描述了如何解决此问题。基本上,您从ToolStrip继承并覆盖WndProc,然后将具有MA_ACTIVATEANDEAT结果的WM_MOUSEACTIVATE更改为MA_ACTIVATE结果。