如题;1、如何实现当子节点全部选中/取消,则父节点选中/取消2、如何实现当父节点选中/取消,则子节点全部选中/取消哪位能慷慨相助,最好能有源码实例,先谢谢了!
解决方案 »
- 烦烦烦...动手能力超差
- 『C#』改变应用程序鼠标光标
- 为什么我的windowsform窗体上的button 设置backcolor 透明 他不是透明呢?求高手指点 非常感谢。
- ComboBox数据邦定问题,看过很多帖但是没解决
- C# .NET的优势、劣势、前景
- 字符串替换问题
- c#怎样来定时执行
- 对临时事件和状态事件怎么建立用例?
- 我使用c#当网页,如何在URL中加入用户和密码信息
- c# winform 如何获得excel的单元格地址
- datagrid的中能不能把选中行变色和悬停变色结合起来全身家当了
- treeview拖动时候, 当鼠标掠过一节点,如何设置这个节点的背景色,向window中资源管理那样
{
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);
}
}
}
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;
}
}
}