zoukankan
html css js c++ java
.net C# Treeview的Node拖动,Node节点上下移动
定义一个TreeView 名字为TVdepartment,设置allowdrop为True
//
移动代码
private
void
MiMoveUp_Click(
object
sender, EventArgs e)
//
向上移动
{
//
by 闫磊 Email:Landgis@126.com,yanleigis@21cn.com 2007.10.10
TreeNode Node
=
TVdepartment.SelectedNode;
TreeNode PrevNode
=
Node.PrevNode;
if
(PrevNode
!=
null
)
{
TreeNode NewNode
=
(TreeNode)Node.Clone();
if
(Node.Parent
==
null
)
{
TVdepartment.Nodes.Insert(PrevNode.Index, NewNode);
}
else
{
Node.Parent.Nodes.Insert(PrevNode.Index, NewNode);
}
Node.Remove();
TVdepartment.SelectedNode
=
NewNode;
}
}
private
void
MiMoveDown_Click(
object
sender, EventArgs e)
//
向下移动
{
//
by 闫磊 Email:Landgis@126.com,yanleigis@21cn.com 2007.10.10
TreeNode Node
=
TVdepartment.SelectedNode;
TreeNode NextNode
=
Node.NextNode;
if
(NextNode
!=
null
)
{
TreeNode NewNode
=
(TreeNode)Node.Clone();
if
(Node.Parent
==
null
)
{
TVdepartment.Nodes.Insert(NextNode.Index
+
1
, NewNode);
}
else
{
Node.Parent.Nodes.Insert(NextNode.Index
+
1
, NewNode);
}
Node.Remove();
TVdepartment.SelectedNode
=
NewNode;
}
}
//
拖动代码
private
void
TVdepartment_ItemDrag(
object
sender, ItemDragEventArgs e)
//
左键拖动
{
if
(e.Button
==
MouseButtons.Left)
{
DoDragDrop(e.Item, DragDropEffects.Move);
}
}
private
void
TVdepartment_DragEnter(
object
sender, DragEventArgs e)
{
if
(e.Data.GetDataPresent(
"
System.Windows.Forms.TreeNode
"
))
{
e.Effect
=
DragDropEffects.Move;
}
else
{
e.Effect
=
DragDropEffects.None;
}
}
private
void
TVdepartment_DragDrop(
object
sender, DragEventArgs e)
//
拖动
{
//
by 闫磊 Email:Landgis@126.com,yanleigis@21cn.com 2007.10.10
//
获得拖放中的节点
TreeNode moveNode
=
(TreeNode)e.Data.GetData(
"
System.Windows.Forms.TreeNode
"
);
//
根据鼠标坐标确定要移动到的目标节点
Point pt;
TreeNode targeNode;
pt
=
((TreeView)(sender)).PointToClient(
new
Point(e.X, e.Y));
targeNode
=
this
.TVdepartment.GetNodeAt(pt);
//
如果目标节点无子节点则添加为同级节点,反之添加到下级节点的未端
TreeNode NewMoveNode
=
(TreeNode)moveNode.Clone();
if
(targeNode.Nodes.Count
==
0
)
{
targeNode.Parent.Nodes.Insert(targeNode.Index, NewMoveNode);
}
else
{
targeNode.Nodes.Insert(targeNode.Nodes.Count, NewMoveNode);
}
//
更新当前拖动的节点选择
TVdepartment.SelectedNode
=
NewMoveNode;
//
展开目标节点,便于显示拖放效果
targeNode.Expand();
//
移除拖放的节点
moveNode.Remove();
}
查看全文
相关阅读:
BETA冲刺(6/7)
BETA冲刺(5/7)
BETA冲刺(4/7)
BETA冲刺(3/7)
BETA冲刺(2/7)
福大软工 · 第十次作业
BETA冲刺(1/7)
第08组 Beta版本演示
第08组 Beta冲刺(4/4)
第08组 Beta冲刺(3/4)
原文地址:https://www.cnblogs.com/top5/p/1699485.html
最新文章
mysql基本数据类型和约束条件
mysql数据介绍
2018.11.09python学习第三十七天
2018.11.08python学习第三十六天
2018.11.07python学习第三十五天
2018.10.17python学习第二十一天
2018.10.15python学习第十九天part2
python 与C#的类方面的区别,纯属感受
word的临时文件机制,还挺有趣
LeetCode,3. 无重复字符的最长子串
热门文章
LeetCode的一道题引申的python实现的对字符串进行分词,提取词频的方法
python+lego ev3的心得总结 随时更新
坎巴拉太空计划的心得总结
最近学习的sql查询语句连接查询,标记一下
解决ecplise+phthon2.7中使用pytesser和tesseract进行ocr,出现报错的问题
zt <Windows Image Acquisition (WIA)> from msdn
zt对于C#中的FileUpload解决文件上传大小限制的问题设置
福大软工 · 最终作业
Beta答辩总结
BETA冲刺(7/7)
Copyright © 2011-2022 走看看