新建个treeview    node0 ,root1是root节点   node2,node3和node4,node5分别是他们的child节点
- node0
    node2
    node3
- node1
    node4
    node5 我用索引                 switch (treeView1.SelectedNode.Index)
                         {
                            case 0:
                            label1.Text = "你好";
                               break;
                            case 1:
                            label1.Text = "22";
                               break;
                          }我点node2 和node4 的时候都显示“你好”     点node2 和node4 的时候都显示“22” 
我要 只点node2的时候才显示“你好”  而点node4的时候不显示“你好”  
该怎么办? 

解决方案 »

  1.   

    建议用node的value值做switch的条件
      

  2.   

    treeView1_AfterSelect事件
    treeView1.SelectedNode
      

  3.   

    treeView1.SelectedNode.Index的涵义不是在所有节点的索引,而是在本节点的父节点中的索引。如果要判断,可以通过Node.Text,或把关键信息放到Node.Tag中通过Tag来做出判断。
      

  4.   


        private TreeNode niHaoNode = null;
        private Label label = new Label();    public void Init()
        {
          TreeView tree = new TreeView();
          TreeNode node0 = new TreeNode();
          TreeNode node1 = new TreeNode();  // node '你好'
          niHaoNode = node1;      TreeNode node2 = new TreeNode();
          node0.Nodes.Add(node1);
          node0.Nodes.Add(node2);      TreeNode node3 = new TreeNode();
          TreeNode node4 = new TreeNode();
          TreeNode node5 = new TreeNode();
          node3.Nodes.Add(node4);
          node3.Nodes.Add(node5);      tree.Nodes.Add(node0);
          tree.Nodes.Add(node3);      tree.NodeMouseClick += new TreeNodeMouseClickEventHandler(nodeClicked);
        }    private void nodeClicked(object sender, TreeNodeMouseClickEventArgs e)
        {
          if(niHaoNode != null && e.Node.Equals(niHaoNode))
          {
            label.Text = "你好"; 
          }
        }
      

  5.   

    同上,或者用node的name屬性也可以呀呵呵