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

标签 c# .net winforms

我有一个奇怪的问题,我的 .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_MOUSEACTIVATEMA_ACTIVATEANDEAT 结果更改为 MA_ACTIVATE 结果。

关于c# - 如何自动聚焦在后台运行的 .Net winform 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17311470/

相关文章:

.net - 计算 ASP.NET 页面上的加载时间

c# - RESTful WCF json 请求和 json 响应返回 null

c# - 如何在 C#.net 中的 Combobox 中添加值

c# - 如何在 asp.net mvc 身份上设置自定义身份验证?

c# - 使用反射为动态类型赋值并绕过 GetValue 返回的对象 cast\box

c# - 学习.NET

c# - 如何将 .png 文件用作 Windows 窗体中的按钮? (在 C#-visual studio 2013 中)

c# - 如何使多个控件保持焦点?

c# - 等待 PostAsJsonAsync 时抛出 AggregateException

c# - UWP 访问现有页面实例