winForm中应用带CheckBox的TreeView
引用地址:
http://faq.****.net/read/216930.html
如题;
1、如何实现当子节点全部选中/取消,则父节点选中/取消
2、如何实现当父节点选中/取消,则子节点全部选中/取消
哪位能慷慨相助,最好能有源码实例,先谢谢了!
---------------------------------------------------------------
private void treeView1_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
if(e.Action != TreeViewAction.Unknown)
{
CheckAllChildNodes(e.Node,e.Node.Checked);
//选中父节点
bool bol=true;
if(e.Node.Parent !=null)
{
for(int i=0;i<e.Node.Parent.Nodes.Count;i++)
{
if(!e.Node.Parent.Nodes[i].Checked)
bol = false;
}
e.Node.Parent.Checked = bol;
}
}
}
//选中子节点
public void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)
{
foreach(TreeNode node in treeNode.Nodes)
{
node.Checked = nodeChecked;
if(node.Nodes.Count > 0)
{
this.CheckAllChildNodes(node, nodeChecked);
}
}
}
---------------------------------------------------------------
1、如何实现当子节点全部选中/取消,则父节点选中/取消
楼主是想子节点都选中的时候,所有的父节点都选中吗?如果是的话稍微改一下即可
private void treeView1_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
if(e.Action != TreeViewAction.Unknown)
{
CheckAllChildNodes(e.Node,e.Node.Checked);
//选中父节点
bool bol=true;
if(e.Node.Parent !=null)
{
for(int i=0;i<e.Node.Parent.Nodes.Count;i++)
{
if(!e.Node.Parent.Nodes[i].Checked)
bol = false;
}
TreeNode tn=e.Node;
while ( tn.Parent != null )
{
tn = tn.Parent;
tn.Checked = bol;
}
tn.Checked = bol;
}
}
}
相关文章
- easyui中带checkbox框的tree
- 在WinForm应用程序中,使用选项卡控件来加载不同的Form界面!
- 解决Winform应用程序中窗体背景闪烁的问题
- C# winform中的datagridview控件标头加入checkbox,实现全选功能。
- 【WPF应用35】深度解析WPF中的TreeView控件:功能、用法、特性与最佳实践-一、TreeView控件的基本概念
- 【WPF应用26】C#中的CheckBox控件详解与应用示例
- Web API应用架构在Winform混合框架中的应用(4)--利用代码生成工具快速开发整套应用...
- (原创)IconFont(矢量图标字体)在Winform中的应用
- wemall app商城源码中实现带图片和checkbox的listview
- winform中treeview中节点选中的技巧