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)//设备节点被选中
                    {
                        //在这里处理

}
                }

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

时间: 2024-10-15 09:55:57

C# Winform中如何禁用TreeView的某个节点的相关文章

Winform中Treeview控件失去焦点,将选择的节点设置为高亮显示 (2012-07-16 13:47:07)转载▼

Winform中Treeview控件失去焦点,将选择的节点设置为高亮显示 (2012-07-16 13:47:07)转载▼标签: winform treeview drawnode Treeview控件--Name:tVtypeList将tVtypeList的HideSelection属性设置为False,DrawMode属性设置为OwnerDrawText将tVtypeList的DrawNode事件写为:private void tVtypeList_DrawNode(object sende

C#Winform中treeView控件使用总结

1.如何展开目录时改变图标(注意:不是选中时) 要在目录中使用图标首先要加入一个控件ImageList(命名为imageList1),然后可以按图片的index或名称引用图片. 然后需要在TreeView控件的ImageList属性中指向imageList1. TreeView有两个属性: SelectImageIndex:选中该结点时显示的图片的索引 ImageIndex:未选中该结点时显示的图片的索引 可以实现的效果是,选中某个结点时该结点的图片进行改变,如果我们的目标也是如此,万事已经大吉

C#winform中使用控件的Dock属性进行布局

想要实现如下布局,可以通过设置控件的Dock属性达到效果 1.拖放一个panel控件一个label控件(放在panel中)和一个treeView控件到TestForm中 2.设置panel的Dock属性为Top(设置BorderStyle属性为FixedSingle,这样显得美观些),设置treeView的Dock属性为Fill 3.需要注意的是要先把panel放到TestForm中,先放treeView就会使得treeView填充TestForm而被后放置的panel遮盖,如下所示 4.想要实

WinForm控件TreeView 只部分节点显示 CheckBox

WinForm控件TreeView 只部分节点显示  CheckBox 用过asp.net的应该知道,要在treeview中实现上述功能可以使用ShowCheckBox 属性指定那些节点显示checkbox哪些不显示,可是winform中的treeview只提供一个ShowCheckBoxes 属性,要么全部节点显示checkbox,要不全部不显示,而指定节点没有ShowCheckBox 属性,下面就在winform的treeview中实现BS对应CheckBox 属性的功能  方法1: a) 

WinForm 中 VScrollBar Maximum 问题

最近在做一个鼠标经过弹出 TreeView  面板功能 , 要求鼠标离开TreeView区域,隐藏面板. 功能如期开发,其中当TreeView 出现滚动条时,鼠标经过TreeView中的滚动条时,提前隐藏. 原因: TreeView 中将 滚动区域视为非已部份.因此鼠标经过该区域,触发  MouseLeave 事件,但滚动区域没有显示声明 MouseEnter , MouseLeave 的入口 , 因此无法在触发MouseLeave(隐藏动作) 后即时触发 滚动区域的MouseEnter(显示面

Winform中使用折叠窗口

使用此处的控件 http://www.codeproject.com/Articles/18401/XPanderControls 注意事项 使用之前需要先添加winform自带的toolStripContainer1 this.toolStripContainer1.ContentPanel.Controls.Add(this.panel1); 需要设置  private BSE.Windows.Forms.Panel panel1;的属性 this.panel1.Dock = System.

在Winform界面中使用DevExpress的TreeList实现节点过滤查询的两种方式

在我较早的一篇随笔<在DevExpress程序中使用TeeList控件以及节点查询的处理>中,介绍了在树形列表TreeList控件上面,利用SearchControl实现节点的模糊查询过滤操作,效果还是非常不错的,TreeList功能比较强大,界面也相对比微软内置的Winform的TreeView控件美观不少.后来在一次偶然过程中,发现TreeList控件本身就可以打开头部过滤输入,实现节点的快速过滤,不过过滤是完全匹配方式,和我们常规的模糊匹配思路不一样,本篇随笔介绍对TreeList控件常

C# Winform中执行post操作并获取返回的XML类型的数据

/// <summary> /// 返回指定日期的订单数据 /// </summary> /// <param name="StartDate">起始日期</param> /// <param name="EndDate">结束日期</param> /// <returns>DataTable</returns> public System.Data.DataTable

另一种在WINFORM中使用XNA的方法

之前在写化学分子模型制作程序的时候,使用一种方法,将WINFORM控件嵌入到XNA窗体中,从而实现了即使用WINFORM窗体控件又使用XNA.最近在写另一个物理运动学课件制作程序,同样使用XNA,但从另一个角度实现了WINFORM控件和XNA共存,并且在编码上更简单一些. 一.创建XNA工程并添加窗体 向工程添加窗体MainForm,并修改GAME1为MainGame.我们把XNA内容绘制到MainForm上,其实绘制到任何有句柄的控件都可以,即使我们绘制到桌面也未尝不可.但更少的控件能够使我们