首页 > 代码库 > C# Winform中如何禁用TreeView的某个节点

C# Winform中如何禁用TreeView的某个节点

转载处:http://shancheng2007.blog.163.com/blog/static/496838952010111452015761/

 

没找到如何禁用某个节点的直接方法,所以就把要禁用的节点ForeColor设成灰色的
然后在TreeView的BeforeSelect, BeforeCheck事件里根据节点颜色判断,如果是灰色的,则不让用户选中该节点

参考代码如下 

using System.Drawing;

  //禁用第一个节点
  treeView1.Nodes[0].ForeColor = Color.Gray;

可以在绑定数据完成后进行,也可以在绑定过程中指定,看个人了和需求了

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


处理选种节点的时候

  foreach (TreeNode c_tn in tr_SubDepDev.Nodes)
                {
                    if (c_tn.Checked && c_tn.ForeColor != Color.Gray)//设备节点被选中
                    {
                        //在这里处理

                    }
                } 

 

这样就可以达到基本的目的了~

C# Winform中如何禁用TreeView的某个节点