C# 如何解决TreeView控件CheckBox快速双击时无法正常响应的问题

 上图所示,TreeView控件有CheckBox选框,鼠标在对CheckBox状态进行改变时,快速双击代码运行时会发现CheckBox的显示状态发生变化但实际上节点的选中状态与显示的状态不一致,也就是快速双击时CheckBox状态无法正常响应。在网上查资料,验证后发现该方法可行

class TreeViewExt : TreeView
    {
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x203) { m.Result = IntPtr.Zero; }
            else base.WndProc(ref m);
        }
    }

构建一个新的类TreeViewExt 继承TreeView,然后用TreeViewExt 替换在控件的界面定义的TreeView类型即可,如所示

替换代码位置就在Form.Designer.cs的自动生成代码的源文件中

private this.Windows.Forms.TreeView FuncSelectTreeView;                           //声明部分

this.FuncSelectTreeView = new this.Windows.Forms.TreeView();                   //定义部分    

替换为

private TreeViewExt  FuncSelectTreeView;

this.FuncSelectTreeView = new TreeViewExt ();

FuncSelectTreeView为你窗体程序中的TreeView控件

该操作会产生一个问题,就是该控件的鼠标双击事件不会被响应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值