none
treeview的两个小问题 RRS feed

  • 问题

  • 1.如何获取点击选中的节点的子节点状态(是否展开)

    2.我绑定节点的时候,每个节点都写了.SelectAction = TreeNodeSelectAction.Select;
    (右键移上去说会触发system.web.ui.webcontrols.treeview.SelectedNodeChanged)
    但是TreFolders_SelectedNodeChanged(object sender, EventArgs e)就是没有被触发




    我就是添加了事件TreFolders_SelectedNodeChanged(object sender, EventArgs e),但如果默认单击就是这个事件的话,为什么我断点进不了这个事件啊?

    这个事件的字面意思是选择节点改变后触发,我想达到的效果是单击就触发(就是比前面多一种,点击前面刚点过的节点的事件,选中的还是前面的节点,所以TreFolders_SelectedNodeChanged不触发),
    我看了一下Select是指在选定节点时引发 SelectedNodeChanged 事件。就是想把括号里面的情况也加进去,不知道我现在哪里有问题。
    • 已编辑 ww-air 2010年1月9日 15:16
    2010年1月8日 12:44

答案

  • 你好!

    1 通过 TreeNode.Expanded 来判断是否展开
    2 你需要注册为 TreeView 注册 SelectedNodeChanged 事件,既然注册了这个事件就没有必要再为每个节点设置 SelectAction = TreeNodeSelectAction.Select,因为默认就是TreeNodeSelectAction.Select。

    你可以对 TreeNodeSelectAction 的理解有误,MSDN 的解释如下。


     成员名称说明
      Expand 在选定节点时引发 TreeNodeExpanded 事件。 
      None 在选定节点时不引发任何事件。 
      Select 在选定节点时引发 SelectedNodeChanged 事件。 
      SelectExpand 在选定节点时引发 SelectedNodeChanged 和 TreeNodeExpanded 两个事件。 

    知识改变命运,奋斗成就人生!
    2010年1月9日 1:59
    版主