树节点移动操作
---- 使用微软 treeview 控件
作者: pfengk
MSN : pfengk@hotmail.com
更多文章请访问: http://www.cnblogs.com/pfengk/
目录
概述 ................................................................................................................................. 1
操作演示 .......................................................................................................................... 1
实现源码: [C#] ................................................................................................................ 2
概述
本文集中体现树节点移动实现代码其中很多其他代码省略。如果你对 treeview 控件不了解,请参阅我的另外一篇文章《 web 方式下权限分配简单实现 》。
源码中引用命名空间 Microsoft.Web.UI.WebControls。
本文描述节点移动算法效率非常低下,仅仅适合于节点不多的情况下使用。还请高手们多多指教。联系我的msn,谢谢你们!
操作演示
窗体载入初始界面
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"></shapetype><stroke joinstyle="miter"></stroke><formulas></formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f><lock aspectratio="t" v:ext="edit"></lock>
选择节点之后
点击 [ 赋予 ] 按钮之后
再次点击 [ 赋予 ] 按钮之后
实现源码: [C#]
2
3 /// <summary>
4
5 /// 从parentTreeView(森林)的所有根节点中查找childTreeNode是否存在(使用Text属性为关键字比较),存在返回true.
6
7 /// </summary>
8
9 /// <paramname="childTreeNode"></param>
10
11 /// <paramname="parentTreeNode"></param>
12
13 /// <returns></returns>
14
15 public bool FindNodeFromChildNodes(TreeNodechildTreeNode,TreeViewparentTreeView)
16
17 {
18
19 bool returnValue = false ;
20
21
22
23 foreach (TreeNodetempTreeNode in parentTreeView.Nodes)
24
25 {
26
27 if (childTreeNode.Text == tempTreeNode.Text)
28
29 {
30
31 returnValue = true ;
32
33 break ;
34
35 }
36
37 }
38
39 return returnValue;
40
41 }
42
43
44
45 /// <summary>
46
47 /// 从parentTreeView(森林)的所有根节点中查找childTreeNode是否存在(使用Text属性为关键字比较),存在返回true.
48
49 /// </summary>
50
51 /// <paramname="childTreeNode"></param>
52
53 /// <paramname="parentTreeNode"></param>
54
55 /// <returns></returns>
56
57 public bool FindNodeFromChildNodes(TreeNodechildTreeNode,TreeViewparentTreeView, ref TreeNodefoundTreeNode)
58
59 {
60
61 bool returnValue = false ;
62
63
64
65 foreach (TreeNodetempTreeNode in parentTreeView.Nodes)
66
67 {
68
69 if (childTreeNode.Text == tempTreeNode.Text)
70
71 {
72
73 returnValue = true ;
74
75 foundTreeNode = tempTreeNode;
76
77 break ;
78
79 }
80
81 }
82
83 return returnValue;
84
85 }
86
87
88
89 /// <summary>
90
91 /// 从parentTreeNode(根节点)的所有节点中查找childTreeNode是否存在(使用Text属性为关键字比较),存在返回true.
92
93 /// </summary>
94
95 /// <paramname="childTreeNode"></param>
96
97 /// <paramname="parentTreeNode"></param>
98
99 /// <returns></returns>
100
101 public bool FindNodeFromChildNodes(TreeNodechildTreeNode,TreeNodeparentTreeNode)
102
103 {
104
105 bool returnValue = false ;
106
107
108
109 foreach (TreeNodetempTreeNode in parentTreeNode.Nodes)
110
111 {
112
113 if (childTreeNode.Text == tempTreeNode.Text)
114
115 {
116
117 returnValue = true ;
118
119 break ;
120
121 }
122
123 }
124
125 return returnValue;
126
127 }
128
129
130
131 /// <summary>
132
133 /// 从parentTreeView(森林)的所有根节点中查找childTreeNode是否存在(使用Text属性为关键字比较),存在返回true.
134
135 /// </summary>
136
137 /// <paramname="childTreeNode"></param>
138
139 /// <paramname="parentTreeNode"></param>
140
141 /// <returns></returns>
142
143 public bool FindNodeFromChildNodes(TreeNodechildTreeNode,TreeNodeparentTreeNode, ref TreeNodefoundTreeNode)
144
145 {
146
147 bool returnValue = false ;
148
149
150
151 foreach (TreeNodetempTreeNode in parentTreeNode.Nodes)
152
153 {
154
155 if (childTreeNode.Text == tempTreeNode.Text)
156
157 {
158
159 returnValue = true ;
160
161 foundTreeNode = tempTreeNode;
162
163 break ;
164
165 }
166
167 }
168
169 return returnValue;
170
171 }
172
173
174
175 /// <summary>
176
177 /// 移除叶子节点。首先判断是否为叶子节点或根节点,是则移除,否则跳出返回
178
179 /// </summary>
180
181 /// <paramname="treeNode"></param>
182
183 /// <returns></returns>
184
185 public bool RemoveLeafageChildNode( ref TreeNodetreeNode)
186
187 {
188
189 bool returnValue = false ;
190
191 if (treeNode.Nodes == null | treeNode.Nodes.Count == 0 )
192
193 http://www.cnblogs.com/Images/OutliningIndicators
发表评论
评论