reeview的Node拖动,Node节点上下移动
来源:互联网 发布:域名.wang广告 编辑:程序博客网 时间:2024/05/22 04:47
http://blog.csdn.net/confei/article/details/3081464
定义一个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();
}
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();
}
private void Treeview1_DragOver(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(DPAUInfo)))
{
TreeViewHitTestInfo hti = this.tvTarget.HitTest(this.Treeview1.PointToClient(new Point(e.X, e.Y)));
this.Treeview1.SelectedNode = hti.Node;
}
}
0 0
- reeview的Node拖动,Node节点上下移动
- .net C# Treeview的Node拖动,Node节点上下移动
- Treeview的Node拖动,Node节点上下移动
- .net C# Treeview的Node拖动,Node节点上下移动
- .net C# Treeview的Node拖动,Node节点上下移动
- .net C# Treeview的Node拖动,Node节点上下移动
- .net C# Treeview的Node拖动,Node节点上下移动
- .net C# Treeview的Node拖动,Node节点上下移动收藏
- node 节点
- node节点
- ROS的节点(NODE)
- Node节点类型的判断。
- .net C# Treeview的Node拖动
- treelist上下节点上下移动
- easyui-tree实现节点的上下移动
- 上下移动~上下拖动实现思路流程
- Node的三种译法:网点、节点和结点
- Ogre的节点SceneNode(Node)
- 配置samba服务器
- 安卓手机图案锁屏能被轻松攻破 图案解锁没有想象中安全
- cocos2dx 简单加载lua文件
- 配置redis主从时报错:Error condition on socket for SYNC: Connection refused
- Hue
- reeview的Node拖动,Node节点上下移动
- eclipse 中git解决冲突
- 对Bean进行操作以用于把入参对象解析成Map参数传递到Mybatis的工具类
- Oracle查询日期
- c++==与c内存分配释放及引用的对比(3)
- no crontab for root 解答
- Android 开发之Volley网络架构
- Monkey测试教程
- MyBatis学习笔记(六)动态sql