2012-10-09 151 views
0

本質上,我試圖找到一種方法來點擊TreeView的區域,並突出顯示該區域。在選擇另一個節點後,他們的問題似乎總是不重視該區域。我一遍又一遍地被玩弄和搜查......以及..最後,我問了一個問題,我無法正常工作。我會顯示我的代碼,但不是它只是一個令人討厭的整合代碼。有沒有人有一個很好的工作示例?TreeNode當選擇更改前景/背景顏色

澄清只是基礎知識:

Private Sub TreeView1_AfterSelect(ByVal sender As Object, _ 
            ByVal e As TreeViewEventArgs) _ 
            Handles TreeView1.AfterSelect   
    'e.Node.BackColor = Color.Yellow 
End Sub 

我試圖用許多方法來設置和通過收集循環取消。它似乎從來沒有工作!

+0

請注意我明白「點擊某個區域」的含義。你是否試圖點擊一個節點並繪製自定義高亮顏色? – LarsTech

回答

1

嘗試改變DrawMode TreeView控件到OwnerDrawText並使用該圖的代碼:

Private Sub TreeView1_DrawNode(ByVal sender As Object, _ 
           ByVal e As DrawTreeNodeEventArgs) _ 
           Handles TreeView1.DrawNode 
    If (e.State And TreeNodeStates.Selected) <> 0 Then 
    e.Graphics.FillRectangle(Brushes.Yellow, e.Bounds) 
    TextRenderer.DrawText(e.Graphics, e.Node.Text, e.Node.NodeFont, e.Bounds, _ 
          Color.Black, Color.Empty, _ 
          TextFormatFlags.VerticalCenter) 
    Else 
    e.Graphics.FillRectangle(SystemBrushes.Window, e.Bounds) 
    TextRenderer.DrawText(e.Graphics, e.Node.Text, e.Node.NodeFont, e.Bounds, _ 
          SystemColors.WindowText, Color.Empty, _ 
          TextFormatFlags.VerticalCenter) 
    End If 
End Sub 
+0

巧妙的技巧!我不知道屬性設置繞過文本處理的方式。相反,我試圖循環充滿1000個節點的集合來修改顏色。謝謝。 – DJPlayer

0

步驟一的形式,放置一個文本框,一個標籤和三個horizo​​ntall滾動條 步驟2-下一步驟是設置每個控件的屬性。

  1. label1的字幕背景
  2. 文本1 - 文本 - (留空)
  3. hscroll1-MAX-255
  4. hscroll2-MAX-255
  5. hscroll3-MAX-255

(上面給出的是控件,屬性和設置) 第3步 - 這是最後一步。那就是編寫代碼。它非常簡單。

Private Sub HScroll1_Change()(note:end of line1) 
    Text1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)(note:end of line2) 
End Sub 


Private Sub HScroll2_Change()(note:end of line1) 
    Text1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)(note:end of line2) 
End Sub 

Private Sub HScroll3_Change()(note:end of line1) 
    Text1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)(note:end of line2) 
End Sub 
+0

此代碼僅適用於更改背景顏色。我認爲您不瞭解code.fine,我會再次編寫它。 – 123kkk