TREEVIEW节点拖拽



|
private void Form1_Load(object sender, EventArgs e)
{
treeView1.AllowDrop = true;
treeView1.HideSelection = false;
} |
|
private TreeNode node1 = null; //node1 当前选中的那个节点
private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
{
node1 = (TreeNode)e.Item;
DoDragDrop(e.Item, DragDropEffects.Move);
} |
|
private void treeView1_DragOver(object sender, DragEventArgs e)
{
TreeNode node2 = treeView1.GetNodeAt(treeView1.PointToClient(new Point(e.X, e.Y)));
//节点2不存在
//节点1 = 节点2
//节点1 往它的父一级节点拖拽
if ((node2 == null) || (node1 == node2) || (node1.Parent == node2))
{
treeView1.SelectedNode = node1;
SetTreeNodeColorDefault();
e.Effect = DragDropEffects.None;
return;
}
else
{
e.Effect = DragDropEffects.Move;
treeView1.SelectedNode = node2;
SetTreeNodeColorBlue();
//当一个父节点往它的子节点中拖拽时
while (node2.Parent != null)
{
if (node2.Parent == node1)
{
e.Effect = DragDropEffects.None;
return;
}
node2 = node2.Parent;
}
}
}
|
|
private void treeView1_DragDrop(object sender, DragEventArgs e)
{
TreeNode node2 = treeView1.GetNodeAt( treeView1.PointToClient(new Point(e.X, e.Y)) );
if (node1 != node2)
{
if (node1.Parent != node2)
{
textBox1.Text = textBox3.Text + "\\" + node1.FullPath;
textBox2.Text = textBox3.Text + "\\" + node2.FullPath;
///MessageBox.Show("Finished");
if (node1.Parent == null)
treeView1.Nodes.Remove(node1);
else
node1.Parent.Nodes.Remove(node1);
node2.Nodes.Add(node1);
node2.Expand();
}
}
} |
|
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
SetTreeNodeColorDefault();
} |
|
private void SetTreeNodeColorBlue()
{
if (node1 != null)
{
node1.BackColor = Color.FromArgb(51, 153, 255);//蓝色
node1.ForeColor = Color.White;
}
}
|
|
private void SetTreeNodeColorDefault()
{
if (node1 != null)
{
node1.BackColor = SystemColors.Window;
node1.ForeColor = Color.Black;
}
}
|
附件列表
TREEVIEW节点拖拽的更多相关文章
- TreeView 节点拖拽
public Form1() { InitializeComponent(); treeView1.AllowDrop = true; treeView1.ItemDrag += new ItemDr ...
- jstree 节点拖拽保存数据库
需要jstree具有拖拽功能需要在加载jstree时添加dnd插件,具体看代码: $('**').jstree({ //plugins-各种jstree的插件引入,展示树的多样性 'plugins' ...
- winform 两个TreeView间拖拽节点
/// <summary> /// 正在拖拽的节点 /// </summary> private TreeNode DragNode = null; /// <summa ...
- easyui树节点拖拽排序的存储过程
easyui树的拖拽排序功能 easyui树中有拖拽功能 树结构如下: 一个行政区域对应一个单位,一个单位对应多个部门,每个部门下有相关人员,功能要求: (1)行政区域没有子节点,点击text加载部门 ...
- C# TreeView 拖拽节点到另一个容器Panel中简单实现
C# TreeView 拖拽节点到另一个容器Panel中简单实现 用了这么久C#拖拽功能一直没有用到也就没用过,今天因为项目需要,领导特地给我简单讲解了下拖拽功能,真是的大师讲解一点通啊.特地写一篇博 ...
- TREEVIEW拖拽对应修改目录
附件:http://files.cnblogs.com/xe2011/TreeView_Drag_Directory%E6%93%8D%E4%BD%9C.rar TREEVIEW拖拽对应修改目 ...
- Jquery实现可拖拽的树菜单
效果图例如以下所看到的:下载地址http://download.csdn.net/detail/javaquentin/8290417 <html xmlns="http://www. ...
- html5 Sortable.js 拖拽排序源码分析
最近公司项目经常用到一个拖拽 Sortable.js插件,所以有空的时候看了 Sortable.js 源码,总共1300多行这样,写的挺完美的. 本帖属于原创,转载请出名出处. 官网http:// ...
- twaver拓扑图拖拽后保存json数据
功能描述:拓扑图.对节点进行拖拽,序列化获取拓扑图信息,保存到本地localStorage,刷新页面,执行反序列化,从本地获取之前保存的数据,展现之前拖拽后的拓扑 拓展:此处存储用的是web本地存储l ...
随机推荐
- 弹出对话框 UIAlertController
双选 //实例化UIAlertController var av=UIAlertController(title: "
- 对于volatile的理解
哎.要学的东西太多,时间太少.一周的工作下来要总结的东西太多,还处理不完,越积越多.大周末的好想出去玩啊.... 得嘞,废话止于此. 无聊时候乱看网页发现了volatile的一篇文章,以前曾经对vol ...
- VMware内安装Ubuntu后安装vmtools
今天处于好奇安装了Ubuntu,可是虚拟机运行的时候发现界面很小,于是百度发现要安装一个工具,看了很多方法,就这个比较实用,和大家分享: 第一步:进入系统后,点击虚拟机上的安装vmware tools ...
- info.plist 属性讲解
1 常用项: Application requires iPhone environment:如果应用程序不能在ipodtouch上运行,设置此项为true; Application usesWi-F ...
- 手写js面向对象选项卡插件
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- [译]36 Days of Web Testing(四)
Day 19: UX 用户体验 Why ? 最近UX变得越来越火,用户提现往往会直接联想到易用性和设计. 在我看来,UX不仅仅是这两点.UX, User Experience ,对我而言,不单单是产 ...
- A simple Gaussian elimination problem.
hdu4975:http://acm.hdu.edu.cn/showproblem.php?pid=4975 题意:给你一个n*m的矩阵,矩阵中的元素都是0--9,现在给你这个矩阵的每一行和每一列的和 ...
- [spring-framework]Spring定时器的配置和使用
开发中我们常常会做一些定时任务,这些任务有开始时间,并会按一定的周期或规则执行.如此我们在Java程序开发中使用定时器来处理定时任务. <!-- MessageRequestTask类中包含了m ...
- truncate 空间不释放问题
SQL> set linesize 200 SQL> select segment_name, sum(bytes / 1024 / 1024/1024) from dba_segment ...
- [BZOJ2173]整数的lqp拆分
[题目描述] lqp在为出题而烦恼,他完全没有头绪,好烦啊… 他首先想到了整数拆分.整数拆分是个很有趣的问题.给你一个正整数N,对于N的一个整数拆分就是满足任意m>0,a1 ,a2 ,a3…am ...