• C# TreeView 连续点击 不触发AfterCheck事件


    创建一个类 TreeView2

    namespace System.Windows.Forms
    {
        public class TreeView2 : TreeView
        {
            protected override void WndProc(ref Message m)
            {
                if (m.Msg != 0x203)
                {
                    base.WndProc(ref m);
                }
            }
        }
    }

    然后前台放置一个TreeView控件。名叫:treeView1


    后台代码:

    private void Form3_Load(object sender, EventArgs e)
            {
                //测试数据
                TreeNode t = new TreeNode();
                t.Text = "所有权限";
    
                TreeNode t1 = new TreeNode();
                t1.Text = "会员消费";
                t.Nodes.Add(t1);
    
                for (int i = 0; i < 100; i++)
                {
                    TreeNode t2 = new TreeNode();
                    t2.Text = "Test" + i;
                    t1.Nodes.Add(t2);
                }
    
                this.treeView1.CheckBoxes = true;
                this.treeView1.Nodes.Add(t);
    
            }
    
            private void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)
            {
                foreach (TreeNode node in treeNode.Nodes)
                {
                    node.Checked = nodeChecked;
                    if (node.Nodes.Count > 0)
                    {
                        this.CheckAllChildNodes(node, nodeChecked);
                    }
                }
            }
    
            private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
            {
                if (e.Action != TreeViewAction.Unknown)
                {
                    if (e.Node.Nodes.Count > 0)
                    {
                        this.CheckAllChildNodes(e.Node, e.Node.Checked);
                    }
                }
            }

    最后,将Form3.Designer.cs 文件中的 TreeView 全部替换成我们的 TreeView2



  • 相关阅读:
    STM32F2系列系统时钟默认配置
    在电源上叠加一个脉冲信号,模拟一个干扰信号
    const用法
    指向指针的指针
    Judge Route Circle
    汉明距离
    绘制三角形
    OpenGL工作流程
    OpenGL环境搭建
    next()方法 执行下一个中间件 类似than
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/9779837.html
Copyright © 2020-2023  润新知