2012-10-09 117 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