日期:2014-05-18 浏览次数:20815 次
XmlNodeList root = eep.DocumentElement.ChildNodes; foreach (XmlElement r in root) { Console.WriteLine(r.name); }
private void treeView1_MouseClick(object sender, MouseEventArgs e) { //获取单击的节点 TreeNode root = treeView1.GetNodeAt(new Point(e.X, e.Y)); //该节点是否被选中 bool isChecked = root.Checked; if (root != null) { //该节点的选中状态影响其子孙节点的状态 FooChild(root, isChecked); //该节点的选中状态影响其父祖节点的状态 FooParent(root); } } /**方法:递归子节点跟随其全选或全不选 Modify By Wangxu 2010-2-25*/ private void FooChild(TreeNode node, bool isChecked) { node.Checked = isChecked; foreach (TreeNode nd in node.Nodes) FooChild(nd, isChecked); } /**方法:递归父节点跟随其全选或全不选 Add By Wangxu 2010-2-25*/ private void FooParent(TreeNode root) { if (root.Parent != null) { //兄弟节点被选的个数 int brotherNodeCheckedCount = 0; //遍历该节点的兄弟节点 foreach (TreeNode node in root.Parent.Nodes) { if (node.Checked == true) brotherNodeCheckedCount += 1; } //兄弟节点全没选 if (brotherNodeCheckedCount == 0) { TreeNode parentNode = root.Parent; parentNode.Checked = false;//其父节点也不选 FooParent(parentNode); } //兄弟节点中只要有一个被选 if (brotherNodeCheckedCount == 1) { TreeNode parentNode = root.Parent; parentNode.Checked = true; FooParent(parentNode);//其父节点也被选 } } }
------解决方案--------------------
没有遍历所有节点的好办法,只能递归了,递归是能够保证不管你有多少层子节点都能显示出来的
------解决方案--------------------
我一直是用递归遍历的、
不过有人说他这不是用递归的、没去看、你可以看看
http://blog.csdn.net/xianfajushi/article/details/7756584
------解决方案--------------------
我上面发的就是 递归的例子啊 前段时间刚刚用过的