This repository has been archived by the owner on Sep 11, 2023. It is now read-only.
/
MyTreeList.vb
63 lines (54 loc) · 2.14 KB
/
MyTreeList.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Imports DevExpress.XtraTreeList
Imports DevExpress.XtraTreeList.Nodes
Namespace CustomTreeList_NodeHeight
Public Class MyTreeList
Inherits TreeList
Public Sub New()
MyBase.New()
OptionsBehavior.AutoNodeHeight = False
End Sub
Protected Overrides Function CreateNode(ByVal nodeID As Integer, ByVal owner As TreeListNodes, ByVal tag As Object) As TreeListNode
Return New MyTreeListNode(nodeID, owner)
End Function
Protected Overrides Sub InternalNodeChanged(ByVal node As TreeListNode, ByVal nodes As TreeListNodes, ByVal changeType As NodeChangeTypeEnum)
If changeType = NodeChangeTypeEnum.User1 Then
LayoutChanged()
End If
MyBase.InternalNodeChanged(node, nodes, changeType)
End Sub
Protected Overrides Sub RaiseCalcNodeHeight(ByVal node As TreeListNode, ByRef nodeHeight As Integer)
Dim myNode As MyTreeListNode = TryCast(node, MyTreeListNode)
If myNode IsNot Nothing Then
nodeHeight = myNode.Height
Else
MyBase.RaiseCalcNodeHeight(node, nodeHeight)
End If
End Sub
Public Overridable ReadOnly Property DefaultNodesHeight() As Integer
Get
Return 18
End Get
End Property
End Class
Public Class MyTreeListNode
Inherits TreeListNode
Private Const minHeight As Integer = 5
Private height_Renamed As Integer
Public Sub New(ByVal id As Integer, ByVal owner As TreeListNodes)
MyBase.New(id, owner)
Me.height_Renamed = (TryCast(owner.TreeList, MyTreeList)).DefaultNodesHeight
End Sub
Public Property Height() As Integer
Get
Return height_Renamed
End Get
Set(ByVal value As Integer)
If Height = value OrElse value < minHeight Then
Return
End If
height_Renamed = value
Changed(NodeChangeTypeEnum.User1)
End Set
End Property
End Class
End Namespace