展开Windows窗体TreeView节点而不选择它

时间:2009-12-26 17:17:40

标签: treeview winforms

当我通过单击右侧的加号展开TreeView节点时,节点将被选中。我怎么能避免这个?我希望能够在不更改所选节点的情况下扩展节点(例如,在RegEdit.exe中),并且仅在单击节点文本时更改选择。

(请原谅我似乎是一个基本问题 - 我确实搜索过,但一无所获。欢迎使用任何指针或链接。)

2 个答案:

答案 0 :(得分:1)

我相信您可以使用的是BeforeSelect事件,如果所选节点有子节点,则应允许您取消节点选择。

private void MyTreeView_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
 If (nodeWithChildren) e.Cancel = True
}

答案 1 :(得分:0)

这个派对有点晚了。

您可以使用命中测试。

    private void myTreeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {

        TreeViewHitTestInfo info = myTreeView.HitTest(e.Location);

        if (info.Location == TreeViewHitTestLocations.Label)
        {
            TreeNode node = myTreeView.GetNodeAt(e.Location);

            //do something
        }
    }

如果单击标签,则仅选择节点。

希望这有帮助。