winform Message应用

今天遇到了一个问题,winform 中使用自定义控件时,希望在点击自定义控件时设置控件为选中状态。而且这个自定义控件在一个窗体中被创建多个。

但在自定义控件中添加子控件后,导致鼠标点击事件只能响应在子控件中。

方法1.用事件向父级传递  (如果找不到方法就准备这么干了!)

方法2 不添加控件 ,显示的东西都用画的  (这有点难啊)

方法3 利用Winform 的Message机制。在自定义控件中重写方法WndProc

protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x21 || m.Msg == 0x202) // WM_MOUSEACTIVATE || WM_LBUTTONUP MessageBox.Show("click"); base.WndProc(ref m); }

实践证明方法3可以实现预期结果。

更详细的关于Message  https://www.cnblogs.com/zutian/p/11135581.html

猜你喜欢

转载自www.cnblogs.com/zutian/p/11135641.html
今日推荐