gpt4 book ai didi

winforms - TreeView 节点点击行为

转载 作者:行者123 更新时间:2023-12-04 04:05:19 25 4
gpt4 key购买 nike

我有一个 Winform 应用程序,我在其中使用 TreeView。此应用程序的某些用户有一个问题,他们必须双击节点才能将其展开。所以我添加了这个代码来使用单击来扩展节点:

Private Sub MyTreeView_NodeMouseClick(sender As System.Object, 
e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles MyTreeView.NodeMouseClick

If e.Node.IsExpanded Then
e.Node.Collapse()
Else
e.Node.Expand()
End If

End Sub

这有效,但我注意到有关单击节点的奇怪行为。我注意到有两个地方有不同的行为。第一个位置是 +/- 符号和旁边的点(图片中的第一个圆圈),第二个位置是节点的文本(第二个圆圈):

enter image description here

通常在第一个位置单击就足以展开节点,而在第二个位置必须双击才能展开节点。然后,当我使用我的代码时,单击第二个位置就足以展开节点,但是当我单击第一个位置时,节点会展开并折叠。

为什么用户必须在第二个地方多点击两次才能展开节点?我可以做些什么来通过单击两个地方来扩展节点?谢谢你们!

最佳答案

加号/减号仍被视为节点的一部分 - 当用户单击它时,您的代码会切换扩展,但框架会继续并执行相同的操作。

添加到您的代码中以不对加号/减号进行操作:

private static void TreeView_OnNodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
var hitTest = e.Node.TreeView.HitTest(e.Location);
if (hitTest.Location == TreeViewHitTestLocations.PlusMinus)
return;

if (e.Node.IsExpanded)
e.Node.Collapse();
else
e.Node.Expand();
}

关于winforms - TreeView 节点点击行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23758938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com