日期:2014-05-18  浏览次数:21425 次

Winform中如何隐藏或者禁用TreeView的某个节点
RT

------解决方案--------------------
不用重写也可以,你把禁用的节点ForeColor设成灰色的
然后在TreeView的BeforeSelect, BeforeCheck事件里根据节点颜色判断,如果是灰色的,则不让用户选中该节点

C# code
 private void button1_Click(object sender, EventArgs e)
        {
            //禁用第一个节点
            treeView1.Nodes[0].ForeColor = SystemColors.Control;        
 }

        private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
        {
            if (e.Node != null)
            {
                if (e.Node.ForeColor == SystemColors.Control)
                {
                    e.Cancel = true;  //不让选中禁用节点
                }
            }
        }

        private void treeView1_BeforeCheck(object sender, TreeViewCancelEventArgs e)
        {
            if (e.Node != null)
            {
                if (e.Node.ForeColor == SystemColors.Control)
                {
                    e.Cancel = true; //不让选中禁用节点

                }
            }
        }