当我点击加号展开TreeView节点时,该节点会被选中。我该如何避免这种情况?我希望能够展开节点而不更改所选节点(例如在RegEdit.exe中),只有当单击节点文本时才更改选择。
(请原谅我似乎是一个基础问题 - 我确实搜索了一下,但没有找到答案。欢迎任何指针或链接。)
(请原谅我似乎是一个基础问题 - 我确实搜索了一下,但没有找到答案。欢迎任何指针或链接。)
我相信你可以利用BeforeSelect事件,如果所选节点有子节点,则应该允许你取消节点选择。
private void MyTreeView_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
If (nodeWithChildren) e.Cancel = True
}
这个有点晚了。
你可以使用命中测试。
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
}
}
只有在单击标签时,才会选择该节点。
希望这可以帮助到您。