首页 > Windows开发 > 详细

C# ToolStrip在父窗体失去焦点时,点击里面的按钮无效

时间:2017-01-17 14:09:42      阅读:635      评论:0      收藏:0      [点我收藏+]

  C#里面ToolStrip控件,在父窗体失去焦点的情况下,第一次点击ToolStrip上面的按钮,只是让父窗体获得焦点,并不会引发按钮的Click事件。要执行按钮操作必须再点击一次。相当于说,在父窗体失去焦点的情况,必须点击两次才能真正执行Click按钮操作,相当不符合大众的操作习惯。

  不过解决这个问题,其实也相当容易,只要自定义一个类,从系统的ToolStrip继承,然后重写它的WndProc方法即可。

public class ToolStripEx : ToolStrip
{
    protected override void WndProc(ref Message m)
    {
        const int WM_MOUSEACTIVATE = 0x21;

        if (m.Msg == WM_MOUSEACTIVATE && this.CanFocus && !this.Focused)
            this.Focus();

        base.WndProc(ref m);
    }
}

 

C# ToolStrip在父窗体失去焦点时,点击里面的按钮无效

原文:http://www.cnblogs.com/wzwyc/p/6292693.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!