HotTracking с 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

1 ответ

Решение

Итак, я должен был установить HotTracking для TreeView в 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
Другие вопросы по тегам