2015-09-30 19 views
1

讓HotTracking與OwnerDrawText TreeView一起工作時遇到問題。使用OwnerDrawText TreeView進行HotTracking

這是我用於繪製節點的代碼。我曾嘗試使用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

好的,所以我必須將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 
相關問題