如何移除TreeView中的所有选中节点
2010-12-23 10:01
671 查看
递归方法,整体思路是:首先对根节点下的所有子节点做一个循环,在循环体里边,①判断该子节点是否是叶节点,是的话就移除该节点,并且将子节点数count减一,计数器i也减一,否则就递归调用方法traverse ( childNode )并重新获取该节点的子节点数(childCount = childNode.ChildNodes.Count;)②判断该节点的子节点数是否为0,是的话就移除该节点
// 获得TreeView的根节点
TreeNode node = TreeView.Nodes [0];
// 递归方法
traverse ( node );
/// <summary>
/// 递归移除所有选中的节点
/// </summary>
/// <param name="parentNode"></param>
private void traverse ( TreeNode parentNode )
{
int count = parentNode.ChildNodes.Count;
for ( int i = 0 ; i < count ; i++ )
{
TreeNode childNode = parentNode.ChildNodes [i];
// 移除之前的子节点数
int childCount = childNode.ChildNodes.Count;
// 移除算法
if ( childCount > 0 )
{
// 递归调用
traverse ( childNode );
// 移除之后剩余的子节点
childCount = childNode.ChildNodes.Count;
}
else if ( childNode.ChildNodes.Count == 0 && childNode.Checked )
{
// 您要做的其他操作
// 移除被选中的节点
parentNode.ChildNodes.Remove ( childNode );
--count;
--i;
}
// 移除被选中的父节点(如果父节点的子节点数为0,父节点也要移除)
if ( childCount == 0 )
{
parentNode.ChildNodes.Remove ( childNode );
--count;
--i;
}
}
}
// 获得TreeView的根节点
TreeNode node = TreeView.Nodes [0];
// 递归方法
traverse ( node );
/// <summary>
/// 递归移除所有选中的节点
/// </summary>
/// <param name="parentNode"></param>
private void traverse ( TreeNode parentNode )
{
int count = parentNode.ChildNodes.Count;
for ( int i = 0 ; i < count ; i++ )
{
TreeNode childNode = parentNode.ChildNodes [i];
// 移除之前的子节点数
int childCount = childNode.ChildNodes.Count;
// 移除算法
if ( childCount > 0 )
{
// 递归调用
traverse ( childNode );
// 移除之后剩余的子节点
childCount = childNode.ChildNodes.Count;
}
else if ( childNode.ChildNodes.Count == 0 && childNode.Checked )
{
// 您要做的其他操作
// 移除被选中的节点
parentNode.ChildNodes.Remove ( childNode );
--count;
--i;
}
// 移除被选中的父节点(如果父节点的子节点数为0,父节点也要移除)
if ( childCount == 0 )
{
parentNode.ChildNodes.Remove ( childNode );
--count;
--i;
}
}
}
相关文章推荐
- 关于如何移除TreeView中的所有选中节点的一点体会
- 如何让treeview的所有节点前面的checkbox全部取消选中?
- TreeView中如何选中一个父节点同时选中所有的子节点和孙节点。。。
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- 操作TreeView:,选中左边树的节点,点击>>按钮 将选择的节点展现到右边的树中,同时将选择的节点从左边的树中移除。。点击<<实现同样的功能。。。。
- 递归获取treeview选中父节点的所有子节点
- treeview 如何改变选中节点的背景。
- WPF如何展开所有TreeView树节点?
- bootstrap-treeview 如何实现全选父节点下所有子节点及反选
- 如何判断TreeView的选中节点
- 如何使用javascript得到TreeView当前选中的节点【收集】
- VB.Net程序设计:获取TreeView CheckBox所有选中的节点值
- treeView右键快捷菜单如何选中当前节点
- EXTJS4 如何默认选中树(treeview)的节点
- 如何在右键单击treeview的某节点时,同时选中该节点?
- Treeview选中所有节点
- C#中TreeView选中父节点同时选中所有的子节点
- 如何改变treeview控件选中节点的高亮颜色,就是大家都熟悉的深蓝色,同样可以改变失去焦点时,高亮显示的颜色
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)2005-12-23更新
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)