一棵树可能有相同名称的节点例如:
 节点1
      节点1得子节点_1
      节点1得子节点_2
      节点1得子节点_3
      节点1得子节点_4
  节点2
       节点2得子节点_1
       节点2得子节点_2
 节点1
      节点1得子节点_9
      节点1得子节点_8
      节点1得子节点_7
      节点1得子节点_6问题是如何判断节点1中的子节点是否选中?

解决方案 »

  1.   

    给你个例子:        TreeNode node1 = TreeView1.Nodes[0];//节点1
            foreach (TreeNode node in TreeView1.CheckedNodes)
            {
                if (node.ValuePath.StartsWith(node1.ValuePath))
                {
                    Response.Write("节点1或其子节点有被选中!");
                    break;
                }
            }
      

  2.   

    给你个思路   
    设置根节点的value=""判断你选中的节点的value是不是等于""
    然后判断你选中的节点的父节点的值是不是等于""
    如果父节点的值不等于"" 就说明选择的是子节点if(root.selectednode.value=="")
    {
         if(selectednode.parentnode.value!="")
         {
               alert("您选择的是节点1下的子节点");
          }
         else
         {
               alert("您选择的是节点1");
          }
    }这样应该比较明白了吧
      

  3.   

    那再来个C/S的。        private void button1_Click(object sender, EventArgs e)
            {
                TreeNode node1 = treeView1.Nodes[0];            if (node1.Checked || isChecked(node1.Nodes, node1.FullPath))
                {
                    MessageBox.Show("节点1或其子节点有被选中!");
                }
            }        private bool isChecked(TreeNodeCollection nodes, string basePath)
            {
                foreach (TreeNode node in nodes)
                {
                    if (node.Checked && node.FullPath.StartsWith(basePath)) return true;
                    else return isChecked(node.Nodes, basePath);
                }
                return false;
            }