我的主表单上有一个带有ToolStrip的.NET 2.0 WinForms应用程序.有时,ToolStrip图标不会响应第一次鼠标单击,因此我必须单击该图标两次.它只是一个带有几个图标和工具提示文本的标准ToolStrip,我没有做任何特别的事情.这是常见的吗?
我不久前遇到了同样的问题,我在Rick Brewster的博客中找到了解决方案.我们的想法是在派生类ToolStripEx中覆盖'WndProc'.该解决方案的核心如下所示:
protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == NativeConstants.WM_MOUSEACTIVATE && m.Result == (IntPtr)NativeConstants.MA_ACTIVATEANDEAT) { m.Result = (IntPtr)NativeConstants.MA_ACTIVATE; } }