none
treeView控件展开节点的事件是哪个啊? RRS feed

  • 问题

  • 我构造了一个treeview,最开始的时候只是增加了多个根节点。我想在根节点展开的时候,添加其子节点,但是没有找到对应的事件,应该在哪个事件中写?

    根节点之间的线我想不显示,是哪个属性?

     

    2009年6月9日 5:00

答案

全部回复

  • Webform or WInform?
    【孟子E章】
    2009年6月9日 5:05
    版主
  • 你好!
         可以使用BeforeExpand事件或AfterExpand事件
    http://msdn.microsoft.com/zh-cn/library/system.windows.forms.treeview.beforeexpand.aspx

    周雪峰
    2009年6月9日 5:07
    版主
  • TreeView.ShowRootLines 属性
    http://feiyun0112.cnblogs.com/
    2009年6月9日 5:08
    版主
  • this.treeView1.Nodes[0].Expand(); // 第一个节点展开, 展开所有子节点用this.treeView1.Nodes[0].ExpandAll()
    this.treeView1.ShowLines = false; // 不显示连接线


    知识改变命运,奋斗成就人生!
    2009年6月9日 5:14
    版主
  • 你好 根节点之间的线可以通过ShowRootLines属性来控制

    TreeView.AfterExpand  这个事件是指在展开树节点后发生,还有个BeforeExpand事件即是在展开之前

    努力着就不会放弃!http://hi.baidu.com/1987raymond
    2009年6月9日 5:17
    版主
  • winform的。showlines没错,谢谢

    BeforeExpand事件应当是写增加子节点的脚本吧。但是什么事件触发expand呢?比如我使用鼠标双击一个节点或者使用右箭头,都应该展开这个节点,是触发哪个事件?
    2009年6月9日 5:31
  • 如果这个节点没有子节点,是不能触发 expand 事件的,可以用BeforeSelect或AfterSelect事件中来添加子节点
    知识改变命运,奋斗成就人生!
    2009年6月9日 5:35
    版主
  • 也就是说,在构造treeview的时候,必须先把子节点添加上去,而不能运行时添加?不应该这样吧,在powerbuilder中,有个itempopulate事件,使用鼠标双击一个节点或者使用右箭头,第一次展开这个节点时,就会触发。.net中没有对应的事件吗?

    2009年6月9日 5:47
  • List<TreeNode> fNodeState = new List<TreeNode>();
    private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
    {
        if (!fNodeState.Contains(e.Node))
        {
            // 第一次
            // 你的代码
            fNodeState.Add(e.Node);
        }
    }

    知识改变命运,奋斗成就人生!
    2009年6月9日 5:53
    版主
  • 我在afterselect事件中增加子项,可以实现。
    这时候只要选到某个节点就会增加子项了,和我本来的意思也不太一样,不过好歹可以实现了。谢谢各位版主。       

    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                treeView1.SelectedNode.Nodes.Add("sub Node");
            }
    2009年6月9日 6:08
  • 应该是没有这个对应的事件吧。我干脆在双击事件中写脚本 展开子项了。

    2009年6月10日 3:30