0

本质上,我试图找到一种方法来单击 TreeView 的某个区域并突出显示该区域。他们的问题似乎总是在选择另一个节点后不突出显示该区域。我一遍又一遍地玩弄和搜索.. 好吧.. 最后我问 b/c 我不能让它正常工作。我会展示我的代码,但它不仅仅是一堆令人讨厌的整合代码。有没有人有一个很好的工作例子?

澄清基础知识:

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

我尝试使用多种方法通过循环遍历集合来设置和取消选择。它似乎永远不会工作!

4

2 回答 2

1

尝试将 TreeView 控件的 DrawMode 更改为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
于 2012-10-09T14:00:27.820 回答
0

第一步——在表单中,放置一个文本框、一个标签和三个水平滚动条 第二步——下一步是设置每个控件的属性。

  1. label1-标题-背景
  2. text1-text-(留空)
  3. hscroll1-max-255
  4. hscroll2-max-255
  5. hscroll3-max-255

(上面给出的是控件,属性和设置) step3-这是最后一步。即编写代码。非常简单。

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
于 2013-02-03T09:00:24.047 回答