0

你好。我有一个TreeView当我双击它时它会展开。而且我有只显示一个节点的方法(选中,其他打开的节点自动关闭)

void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
    {
        foreach (TreeNode node in e.Node.Parent.Nodes)
        {
            if (node != e.Node)
                treeView1.CollapseAll();

        }
    }

问题是这种方法在我单击鼠标时有效,但是当我双击它时树会崩溃。我需要它treeView1_BeforeSelect会在双击时执行。

谢谢

4

1 回答 1

0

这可能是因为BeforeSelect在双击引发的默认行为之前执行。因此,您想要的结果被抹杀了。自己处理双击事件,做同样的事情:

public void treeView1_NodeMouseDoubleClick(Object sender, TreeNodeMouseClickEventArgs e)
{
    foreach (TreeNode node in e.Node.Parent.Nodes)
    {
        if (node != e.Node)
            treeView1.CollapseAll();
    }

    e.Node.Expand();
}
于 2013-09-26T11:04:11.773 回答