C#winfrom 中 TreeView 控件中带checkbox,怎么实现在父节点上打勾,选中全部子节点?
2014-08-28 18:11
666 查看
//设置标志,防止死循环
bool check = false;
//节点勾选后事件,如果更改某一节点状态会自动触发,所以在后面的方法中无需递归
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if(check==false)
setchild(e.Node);
setparent(e.Node);
check = false;
}
//设置子节点状态
private void setchild(TreeNode node)
{
foreach (TreeNode child in node.Nodes)
{
child.Checked = node.Checked;
}
check = true;
}
//设置父节点状态
private void setparent(TreeNode node)
{
if (node.Parent != null)
{
//如果当前节点状态为勾选,则需要所有兄弟节点都勾选才能勾选父节点
if (node.Checked)
{ foreach (TreeNode brother in node.Parent.Nodes)
{
if (brother.Checked == false)
{
node.Parent.Checked = false;
return;
}
}
node.Parent.Checked = node.Checked;
}
else node.Parent.Check = false;
}
}
//设置标志,防止死循环
bool check = false;
//节点勾选后事件,如果更改某一节点状态会自动触发,所以在后面的方法中无需递归
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if(check==false)
setchild(e.Node);
setparent(e.Node);
check = false;
}
//设置子节点状态
private void setchild(TreeNode node)
{
foreach (TreeNode child in node.Nodes)
{
child.Checked = node.Checked;
}
check = true;
}
//设置父节点状态
private void setparent(TreeNode node)
{
if (node.Parent != null)
{
//如果当前节点状态为勾选,则需要所有兄弟节点都勾选才能勾选父节点
if (node.Checked)
{ foreach (TreeNode brother in node.Parent.Nodes)
{
if (brother.Checked == false)
{
node.Parent.Checked = false;
return;
}
}
node.Parent.Checked = node.Checked;
}
else node.Parent.Check = false;
}
}
相关文章推荐
- 包含CheckBox的TreeView控件——父节点选中时其子节点不可选,子节点有项选中时其父节点不可选
- C# 中TreeView 控件实现点击CheckBoX自动打钩的事件
- c#,winform,treeview,选中节点,选中相应的全部子节点,取消节点,取消父节点,小技巧
- javascrip实现:若选中TreeView的父节点checkbox,则其子节点全部选中
- TreeView有checkbox 当父节点选择框选中 子节点将全部选中 代码怎么写的?
- c#,winform,treeview,选中节点,选中相应的全部子节点,取消节点,取消父节点,小技巧
- 学习使用TreeView 控件的TreeNode 对象来获取选中了CheckBox的节点!
- C#Winform基础 treeview控件 选中一个根节点为其添加子节点
- C#中TreeView实现适合两级节点的选中节点方法
- C#treeView控件单击事件选中节点的问题
- C# treeview控件部分节点添加checkbox
- C# treeview控件部分节点添加checkbox
- winfrom中DataGridView绑定数据控件中DataGridViewCheckBoxColumn怎么选中
- TreeView控件的CheckBox自动实现父子节点递归选定
- TreeView控件中选中节点前的checkBox仍然会触发NodeMouseClick事件
- 实现当TreeView中父节点的CheckBox的点选状态改变时,回发服务器端,并且选中父节点,所有子节点全选中
- C#Winfrom中,窗体加载时会自动执行一次控件的textchange事件,怎么让它不执行?
- C#Winform基础 treeview控件 选中一个根节点为其添加子节点
- 在Winform中的TreeView控件,实现选中/取消选中父节点则自动选择/取消选中对应子节点
- c#里什么控件可以播放视频(avi)?怎么实现