System.Windows.Forms.TreeView节点“无法点击”

时间:2013-04-05 10:24:42

标签: vb.net winforms treeview


我有一个带有HotTracking = True的System.Windows.Forms.TreeView 我希望仅在特定节点中将HotTracking设置为False。

例如,我希望父亲不可点击,孩子可以点击。

谢谢

1 个答案:

答案 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