实现在TreeView节点中进行拖放操作
2009-10-11 11:47
627 查看
private TreeNode oldenterNode;
private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
{
//启动拖放操作, 设置拖放类型为MOVE移动
DoDragDrop(e.Item, DragDropEffects.Move);
}
//保存前一个鼠标进入的TreeNode
private void treeView1_DragEnter(object sender, DragEventArgs e)
{
//获取TreeNode类型的数据内容.
object data = e.Data.GetData(typeof(TreeNode));
//如果有数据拖放时不允许旋转
if (data != null)
{
e.Effect = DragDropEffects.Move;
}
else
{
e.Effect = DragDropEffects.None;
}
//获得当前TreeView的引用
TreeView theTree = (TreeView)sender;
//得到鼠标进入TreeNode的引用
TreeNode enterNode = theTree.GetNodeAt(treeView1.PointToClient(new Point (e.X, e.Y)));
if (enterNode != null)
{
//改变进入TreeNode的背景色
enterNode.BackColor = Color.Blue;
//保存此TreeNode,进入下一个时还原背景色
oldenterNode = enterNode;
}
}
private void treeView1_DragOver(object sender, DragEventArgs e)
{
//修改鼠标进入TreeNode的背景色,还原上一个TreeNode背景色
TreeView theTree = (TreeView)sender;
TreeNode enterNode = theTree.GetNodeAt(treeView1.PointToClient(new Point(e.X, e.Y)));
if ((enterNode != null) && (enterNode != oldenterNode))
{
oldenterNode.BackColor = Color.White;
enterNode.BackColor = Color.Blue;
oldenterNode = enterNode;
}
}
private void treeView1_DragDrop(object sender, DragEventArgs e)
{
//得到拖放数据,并转换为TreeNode型
TreeNode theNode = (TreeNode)e.Data.GetData(typeof(TreeNode));
TreeView theTree = (TreeView)sender;
//得到鼠标进入TreeNode,而拖放目标TreeNode
TreeNode targetNode = theTree.GetNodeAt(treeView1.PointToClient(new Point(e.X, e.Y)));
if (targetNode != null)
{
TreeNode targetParent = targetNode.Parent;
//删除拖放的TreeNode
theNode.Remove();
//添加到目标TreeView下
targetNode.Nodes.Add(theNode);
targetNode.BackColor = Color.White;
theTree.SelectedNode = targetNode;
}
}
private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
{
//启动拖放操作, 设置拖放类型为MOVE移动
DoDragDrop(e.Item, DragDropEffects.Move);
}
//保存前一个鼠标进入的TreeNode
private void treeView1_DragEnter(object sender, DragEventArgs e)
{
//获取TreeNode类型的数据内容.
object data = e.Data.GetData(typeof(TreeNode));
//如果有数据拖放时不允许旋转
if (data != null)
{
e.Effect = DragDropEffects.Move;
}
else
{
e.Effect = DragDropEffects.None;
}
//获得当前TreeView的引用
TreeView theTree = (TreeView)sender;
//得到鼠标进入TreeNode的引用
TreeNode enterNode = theTree.GetNodeAt(treeView1.PointToClient(new Point (e.X, e.Y)));
if (enterNode != null)
{
//改变进入TreeNode的背景色
enterNode.BackColor = Color.Blue;
//保存此TreeNode,进入下一个时还原背景色
oldenterNode = enterNode;
}
}
private void treeView1_DragOver(object sender, DragEventArgs e)
{
//修改鼠标进入TreeNode的背景色,还原上一个TreeNode背景色
TreeView theTree = (TreeView)sender;
TreeNode enterNode = theTree.GetNodeAt(treeView1.PointToClient(new Point(e.X, e.Y)));
if ((enterNode != null) && (enterNode != oldenterNode))
{
oldenterNode.BackColor = Color.White;
enterNode.BackColor = Color.Blue;
oldenterNode = enterNode;
}
}
private void treeView1_DragDrop(object sender, DragEventArgs e)
{
//得到拖放数据,并转换为TreeNode型
TreeNode theNode = (TreeNode)e.Data.GetData(typeof(TreeNode));
TreeView theTree = (TreeView)sender;
//得到鼠标进入TreeNode,而拖放目标TreeNode
TreeNode targetNode = theTree.GetNodeAt(treeView1.PointToClient(new Point(e.X, e.Y)));
if (targetNode != null)
{
TreeNode targetParent = targetNode.Parent;
//删除拖放的TreeNode
theNode.Remove();
//添加到目标TreeView下
targetNode.Nodes.Add(theNode);
targetNode.BackColor = Color.White;
theTree.SelectedNode = targetNode;
}
}
相关文章推荐
- 在C#中实现TreeView节点的拖放操作
- 控件之间拖放操作(二)-----实现Treeview节点到DataGridView
- 操作TreeView:,选中左边树的节点,点击>>按钮 将选择的节点展现到右边的树中,同时将选择的节点从左边的树中移除。。点击<<实现同样的功能。。。。
- 拖放操作-实现Treeview到Treeview和DataGridView到Treeview
- 在同一treeview中拖放节点并实现动态图像跟随
- java 移动节点,排序号进行重新排序,以闭包形式实现ztree增删改查操作,其中排序运用到此方法
- 用jQuery实现asp.net 2.0 treeview控件完全无刷新操作实例(AJAX的增、删、改、选择以及展开收缩节点)
- 控件之间拖放操作-----实现Treeview到Treeview
- RSS阅读器制作之TreeView树节点移动操作的实现
- 在同一treeview中拖放节点并实现动态图像跟随
- treeview中节点拖放实现
- TreeView节点拖放/DragDrop的实现实例(C#)
- 【原创】教你快速实现TreeView节点拖放(Drag&Drop)
- Jquery操作TreeView 父节点checkbox选中,子节点checkbox也选中
- php实现图片上传并进行替换操作
- 实现TreeView父子节点的联动
- Easyui Tree对节点进行,添加,修改,删除操作
- Spring源码学习之: 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- 【异或交换原理】按位进行异或操作,实现数的交换
- TreeView的一些常规操作(右键删除节点)