`

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

阅读更多

树节点移动操作

----使用微软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
15publicboolFindNodeFromChildNodes(TreeNodechildTreeNode,TreeViewparentTreeView)
16
17{
18
19boolreturnValue=false;
20
21
22
23foreach(TreeNodetempTreeNodeinparentTreeView.Nodes)
24
25{
26
27if(childTreeNode.Text==tempTreeNode.Text)
28
29{
30
31returnValue=true;
32
33break;
34
35}

36
37}

38
39returnreturnValue;
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
57publicboolFindNodeFromChildNodes(TreeNodechildTreeNode,TreeViewparentTreeView,refTreeNodefoundTreeNode)
58
59{
60
61boolreturnValue=false;
62
63
64
65foreach(TreeNodetempTreeNodeinparentTreeView.Nodes)
66
67{
68
69if(childTreeNode.Text==tempTreeNode.Text)
70
71{
72
73returnValue=true;
74
75foundTreeNode=tempTreeNode;
76
77break;
78
79}

80
81}

82
83returnreturnValue;
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
101publicboolFindNodeFromChildNodes(TreeNodechildTreeNode,TreeNodeparentTreeNode)
102
103{
104
105boolreturnValue=false;
106
107
108
109foreach(TreeNodetempTreeNodeinparentTreeNode.Nodes)
110
111{
112
113if(childTreeNode.Text==tempTreeNode.Text)
114
115{
116
117returnValue=true;
118
119break;
120
121}

122
123}

124
125returnreturnValue;
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
143publicboolFindNodeFromChildNodes(TreeNodechildTreeNode,TreeNodeparentTreeNode,refTreeNodefoundTreeNode)
144
145{
146
147boolreturnValue=false;
148
149
150
151foreach(TreeNodetempTreeNodeinparentTreeNode.Nodes)
152
153{
154
155if(childTreeNode.Text==tempTreeNode.Text)
156
157{
158
159returnValue=true;
160
161foundTreeNode=tempTreeNode;
162
163break;
164
165}

166
167}

168
169returnreturnValue;
170
171}

172
173
174
175/**////<summary>
176
177///移除叶子节点。首先判断是否为叶子节点或根节点,是则移除,否则跳出返回
178
179///</summary>
180
181///<paramname="treeNode"></param>
182
183///<returns></returns>

184
185publicboolRemoveLeafageChildNode(refTreeNodetreeNode)
186
187{
188
189boolreturnValue=false;
190
191if(treeNode.Nodes==null|treeNode.Nodes.Count==0)
192
193http://www.cnblogs.com/Images/OutliningIndicators
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics