树节点移动操作----使用微软treeview控件

系统 1351 0

树节点移动操作

---- 使用微软 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>

050705007.JPG

050705007.JPG

050705007.JPG

选择节点之后

050705002.JPG

050705002.JPG

050705002.JPG

点击 [ 赋予 ] 按钮之后

050705003.JPG

050705003.JPG

050705003.JPG

再次点击 [ 赋予 ] 按钮之后

实现源码: [C#]

1 "一棵树到另一棵树的节点移动方法" #region "一棵树到另一棵树的节点移动方法"
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
分享到:
评论

树节点移动操作----使用微软treeview控件


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论