首页 > Windows开发 > 详细

c#工具菜单ToolStrip控件使用笔记

时间:2020-01-08 23:44:15      阅读:100      评论:0      收藏:0      [点我收藏+]

1.嵌套窗体界面点击无触发

主窗体上有一个工具菜单ToolStrip,在同一个界面嵌套了一个子窗体,当前焦点在子窗体内时,点击ToolStrip上的按钮,有点意外情况:必须双击才能触发这个ToolStripButton的Click事件。

这是因为,第一次点击,程序将父窗体获得焦点,第二次点击时(父窗体已处于焦点),才会触发事件

有一个解决办法,可参见:https://www.cnblogs.com/wzwyc/p/6292693.html

就是,自定义一个组件,继承系统的ToolStrip。并写下如下代码:

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);
    }
}

然后,用ToolStripEx控件代替原来的ToolStrip控件,即可。

 

c#工具菜单ToolStrip控件使用笔记

原文:https://www.cnblogs.com/CUIT-DX037/p/12169001.html

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