16,554
社区成员
发帖
与我相关
我的任务
分享
Public Class MyTreeView
Inherits TreeView
Protected Overrides Sub OnCreateControl()
CheckBoxes = True
MyBase.OnCreateControl()
End Sub
Protected Overrides Sub OnLostFocus(e As EventArgs)
SelectedNode.BackColor = Color.Gray
MyBase.OnLostFocus(e)
End Sub
Protected Overrides Sub OnGotFocus(e As EventArgs)
SelectedNode.BackColor = Color.Transparent
MyBase.OnGotFocus(e)
End Sub
Protected Overrides Sub OnNodeMouseClick(e As TreeNodeMouseClickEventArgs)
For Each i As TreeNode In Me.Nodes
If i IsNot SelectedNode Then
i.BackColor = Color.Transparent
End If
Next
MyBase.OnNodeMouseClick(e)
End Sub
End Class
Public Class Form1
''' <summary>
''' 上一次选择的节点对象。
''' </summary>
Private OldSelectedNode As TreeNode
Private Sub TreeView2_LostFocus(sender As Object, e As EventArgs) Handles TreeView2.LostFocus
If Not OldSelectedNode Is Nothing Then
OldSelectedNode.BackColor = Color.Tomato '自定义颜色
End If
End Sub
Private Sub TreeView2_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeView2.AfterSelect
' 选中新节点后,之前的节点重置为背景色
If Not OldSelectedNode Is Nothing Then
OldSelectedNode.BackColor = TreeView2.BackColor
End If
' 更新节点变量
OldSelectedNode = e.Node
End Sub
End Class