TreeList 树形控件 实现带三种状态的CheckBox
树形控件是使用频率很高的一种控件。对于属性控件往往需要下面两个功能
1.TreeList带有CheckBox,并且节点要有三种状态(所有的子节点都选中,所有的子节点都没选择,一部分子节点选中)。使用
DevXpress的TreeList控件很容易实现这一功能。
设置TreeList.OptionsView.ShowCheckBoxes = true
//是否显示CheckBox
设置TreeList.OptionsBehavior.AllowIndeterminateCheckState =
true; //设置节点是否有中间状态,即一部分子节点选中,一部分子节点没有选中
设置这两个属性之后就实现了TreeList带有CheckBox,并且节点有三种状态。
2.选中父节点或者子节点相互影响的功能,如选择父节点选择所有子节点。绑定TreeList的两个事件AfterCheckNode和
BeforeCheckNode
实现功能的代码如下:
private void treeList1_AfterCheckNode(object sender, DevExpress.XtraTreeList.NodeEventArgs e)
{
SetCheckedChildNodes(e.Node, e.Node.CheckState);
SetCheckedParentNodes(e.Node, e.Node.CheckState);
}
private void treeList1_BeforeCheckNode(object sender, DevExpress.XtraTreeList.CheckNodeEventArgs e)
{
e.State = (e.PrevState == CheckState.Checked ? CheckState.Unchecked : CheckState.Checked);
}
/// <summary>
/// 设置子节点的状态
/// </summary>
/// <param name="node"></param>
/// <param name="check"></param>
private void SetCheckedChildNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, CheckState check)
{
for (int i = 0; i < node.Nodes.Count; i++)
{
node.Nodes[i].CheckState = check;
SetCheckedChildNodes(node.Nodes[i], check);
}
}
/// <summary>
/// 设置父节点的状态
/// </summary>
/// <param name="node"></param>
/// <param name="check"></param>
private void SetCheckedParentNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, CheckState check)
{
if (node.ParentNode != null)
{
bool b = false;
CheckState state;
for (int i = 0; i < node.ParentNode.Nodes.Count; i++)
{
state = (CheckState)node.ParentNode.Nodes[i].CheckState;
if (!check.Equals(state))
{
b = !b;
break;
}
}
node.ParentNode.CheckState = b ? CheckState.Indeterminate : check;
SetCheckedParentNodes(node.ParentNode, check);
}
}
分享到:
相关推荐
它是一个列表的树控件。 以下是许多功能中的一些:CTreeListCtrl 兼容CTreeCtrl &CListCtrl 标题拖放 拖放在 CTreeListCtrl 透明拖拉窗口与Alpha混合 列表的双色 背景图 复选框支持 锁box支持 嵌入式...
好用的treelistctl,支持checkBox
jquery超漂亮树形控件
读取JSON格式转为DevExpress TreeList 树形。整个发上来的,可以直接运行
C/C++ MFC CListCtrl列表控件和CTreeCtrl树控件的完美结合,对话框模式的完整程序,有VC6.0 VS2008,VS2010的工程文件
纯C的TreeList,可折叠可编辑树状多列列表
ASPNETTreeGridViewEx控件树形GridView控件10.rar astreeview-1.5.8_for_ASP.Net_3.5.zip ASTreeView1.5.8发布(ASP.Net树控件)+Demo.rar cs treegridview.zip FlyTreeViewdll4.4.1.2.rar GridViewTreeSample.zip ...
开发了 TreeList组合控件与TreeComboBOX组合控件 两种组合控件的应用,如需要源码 可以与本人联系
继承自Xtra TreeList,实现了每项都带CheckBox的效果。 (要先安装DevExpress控件包 for vs2005,可以在我的其他资源中找到)
本实例环境为VS2008,DevExpress控件。 演示GridControl的五种试图模式 TreeList树形控件的使用
自定义开发的以树形结构显示的下拉框,基于NETFRAMWORK开发
微信小程序 树形菜单组件 存放路径:/components/treeList/treeList listData数据格式:[{title:'A层级菜单1',children:[]},{title:'A层级菜单2',children:[]}] 使用: ...
非常强大的控件,希望对大家有帮助。支持数据源绑定。
vue 树形结构 添加删除节点 返回ID 可同步到服务器 treelist组件
在Web开发时,经常会用到Treelist控件,这里提供一个方便的Web TreeList 控件。
树形列表控件类。来自codeproject下载,稍作改编。就两个文件,简单好用
DEVexpress中的树形控件treelist,此为使用方法,代码语言为c#,需要的可以下载
c#winform下拉多选自定义控件(带全选),可以自己定义选择项的下拉框
这个是用C++编写的一个treelist控件示例,欢迎大家下载参考
Dev控件 Treelist 綁定數據庫 學習 也有手寫的一些源碼 供大家下載學習