2

我有一个奇怪的问题,我的 .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.

        };

谢谢

4

1 回答 1

5

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

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

于 2013-06-26T04:42:11.040 回答