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