我有一个带有HotTracking = True的System.Windows.Forms.TreeView
我希望仅在特定节点中将HotTracking设置为False。
例如,我希望父亲不可点击,孩子可以点击。
谢谢
答案 0 :(得分:0)
“可点击”非常含糊不清。我假设你不希望它们是可选择的。使用BeforeSelect事件很容易,你可以取消它。例如:
Private Sub TreeView1_BeforeSelect(ByVal sender As Object, ByVal e As TreeViewCancelEventArgs) Handles TreeView1.BeforeSelect
If e.Node.Nodes.Count > 0 Then e.Cancel = True
End Sub
这不会构成一个出色的用户界面,当用户点击无效时,用户会非常困惑。您可以通过不抛弃点击并自动选择允许选择的节点来使其更直观。看起来像这样:
Private Sub TreeView1_BeforeSelect(ByVal sender As Object, ByVal e As TreeViewCancelEventArgs) Handles TreeView1.BeforeSelect
If e.Node.Nodes.Count > 0 Then
e.Cancel = True
Me.BeginInvoke(New Action(Of TreeNode)(AddressOf SelectNode), e.Node.Nodes(0))
End If
End Sub
Private Sub SelectNode(ByVal node As TreeNode)
node.Expand()
node.TreeView.SelectedNode = node
End Sub