使用 OwnerDrawText TreeView 进行热跟踪

HotTracking with OwnerDrawText TreeView

我无法让 HotTracking 与 OwnerDrawText TreeView 一起工作。

这是我绘制节点的代码。我试过使用 e.state 和 TreeNodeStates.Hot 无济于事。这是我第一次使用 OwnerDraw 对象。

Private Sub tree_DrawNode(sender As Object, e As DrawTreeNodeEventArgs)
    If e.Node.Level = 1 Then
        HideCheckBox(e.Node)
        e.DrawDefault = True
    Else
        TextRenderer.DrawText(e.Graphics, e.Node.Text, _
            e.Node.TreeView.Font, e.Bounds, Color.Black, Color.White)
    End If
End Sub

好的,所以我必须将 TreeView 的 HotTracking 设置为 True,然后这是我终于能够开始工作的代码。

' Draw the nodes on the TreeView
Private Sub tree_DrawNode(sender As Object, e As DrawTreeNodeEventArgs)

    If e.Node.Level = 1 Then
        HideCheckBox(e.Node)
        e.DrawDefault = True
    Else
        If (e.State And TreeNodeStates.Hot) <> 0 Then
            TextRenderer.DrawText(e.Graphics, e.Node.Text, e.Node.TreeView.Font, e.Bounds, Color.White, Color.DodgerBlue)
        Else
            TextRenderer.DrawText(e.Graphics, e.Node.Text, e.Node.TreeView.Font, e.Bounds, Color.Black, Color.White)
        End If
    End If

End Sub