This repository has been archived by the owner on Sep 11, 2023. It is now read-only.
/
MyTreeList.cs
46 lines (40 loc) · 1.59 KB
/
MyTreeList.cs
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
using DevExpress.XtraTreeList;
using DevExpress.XtraTreeList.Nodes;
namespace CustomTreeList_NodeHeight {
public class MyTreeList : TreeList {
public MyTreeList() : base() {
OptionsBehavior.AutoNodeHeight = false;
}
protected override TreeListNode CreateNode(int nodeID, TreeListNodes owner, object tag) {
return new MyTreeListNode(nodeID, owner);
}
protected override void InternalNodeChanged(TreeListNode node, TreeListNodes nodes, NodeChangeTypeEnum changeType) {
if (changeType == NodeChangeTypeEnum.User1)
LayoutChanged();
base.InternalNodeChanged(node, nodes, changeType);
}
protected override void RaiseCalcNodeHeight(TreeListNode node, ref int nodeHeight) {
MyTreeListNode myNode = node as MyTreeListNode;
if (myNode != null)
nodeHeight = myNode.Height;
else
base.RaiseCalcNodeHeight(node, ref nodeHeight);
}
public virtual int DefaultNodesHeight { get { return 18; } }
}
public class MyTreeListNode : TreeListNode {
const int minHeight = 5;
int height;
public MyTreeListNode(int id, TreeListNodes owner) : base(id, owner) {
this.height = (owner.TreeList as MyTreeList).DefaultNodesHeight;
}
public int Height {
get { return height; }
set {
if (Height == value || value < minHeight) return;
height = value;
Changed(NodeChangeTypeEnum.User1);
}
}
}
}