我现在要做一个绘图界面,左端放置一个treeview,有两个父节点,每个父节点各有四个子节点,现在要单击选中其中一个子节点就设置一个标志Flag的值,请教应该怎么做呢。下面是我错误的做法:(菜鸟一只,勿喷)
 foreach (TreeNode tn in treeView1.Nodes)
            {
                if (tn.IsSelected)
                {
                    foreach (TreeNode subtn in tn.Nodes)
                    {
                        if (subtn.IsSelected)
                        {
                            switch (subtn.Name)
                            {
                                case "subnode1":
                                    flag=1;
                                    break;
                                case "subnode1":
                                    flag=2;
                                   break;
                                   ...
                                   ...
                            }
                        }
                    }
                }
            }
结果用tn.IsSelected是不行的。
分数不多,望不吝赐教。。

解决方案 »

  1.   

    每个节点不是都有一个事件afterclick 在这里面写应该可以满足你的需求吧
      

  2.   

    记错了 刚看了我写的代码 用的是treeview的afterselect事件
      

  3.   

    我是这样想的 每个节点的Tag属性里面存放你要设置的值 这样每次选中一个节点时取其Tag值
      

  4.   


    treeview这个控件有afterselect这个事件的。你去找下可以找到的。
    另外 你可以看下那个事件下的e参数 应该对你有帮助。
      

  5.   

    多谢楼上各位,问题已经用四楼的办法解决了。
    方法是tag分别设置0 ,1 ,2, 3 。。 然后直接flag=Convert.ToInt32(treeview1.SelectedNode.Tag)
    搞定!