winform 两个TreeView间拖拽节点
/// <summary>
/// 正在拖拽的节点
/// </summary>
private TreeNode DragNode = null;
/// <summary>
/// 节点来源
/// </summary>
private TreeView NodeSource = null;
/// <summary>
/// 树形节点移动方向
/// </summary>
private MoveTreeView MoveTo = MoveTreeView.NoMove; /// <summary>
/// 当鼠标拖拽某相进入控件区域内时
/// </summary>
private void TreeView_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
} /// <summary>
/// 当鼠标拖拽某节点时(两个控件的该事件都指向这个方法)
/// </summary>
private void TreeView_ItemDrag(object sender, ItemDragEventArgs e)
{
if (e.Item is TreeNode && e.Button == System.Windows.Forms.MouseButtons.Left &&
e.Item != null && sender is TreeView)
{
TreeView trv = sender as TreeView;
TreeNode node = e.Item as TreeNode;
if (node.Parent != null && trv.Tag != null)
{
int value = Convert.ToInt32(trv.Tag);
MoveTo = (MoveTreeView)value;
DragNode = node;
NodeSource = trv;
trv.DoDragDrop(node, DragDropEffects.Move);
}
}
} /// <summary>
/// 拖拽完成时发生的事件(两个控件的该事件都指向这个方法)
/// </summary>
private void TreeView_DragDrop(object sender, DragEventArgs e)
{
if (sender != null && sender is TreeView)
{
TreeView trv = sender as TreeView;
if (trv.Tag != null)
{
MoveTreeView move = (MoveTreeView)Convert.ToInt32(trv.Tag);
if (move == MoveTo) { DragNode = null; NodeSource = null; }
else
{
Point p = trv.PointToClient(new Point(e.X, e.Y));
TreeNode node = trv.GetNodeAt(p);
string path = GetClientPath(DragNode, DragNode.Text);
NodeSource.Nodes.Remove(DragNode);
node.Nodes.Add(DragNode);
}
}
}
} /// <summary>
/// 属性节点移动方向
/// </summary>
public enum MoveTreeView
{
/// <summary>
/// 未移动
/// </summary>
NoMove = -,
/// <summary>
/// 上传(客户端拖拽到服务器端)
/// </summary>
ClientToServer = ,
/// <summary>
/// 下载(服务器端拖拽到客户端)
/// </summary>
ServerToClient =
}
首先要将 TreeView 控件的 AllowDrop 属性置为 True
winform 两个TreeView间拖拽节点的更多相关文章
- C# TreeView 拖拽节点到另一个容器Panel中简单实现
C# TreeView 拖拽节点到另一个容器Panel中简单实现 用了这么久C#拖拽功能一直没有用到也就没用过,今天因为项目需要,领导特地给我简单讲解了下拖拽功能,真是的大师讲解一点通啊.特地写一篇博 ...
- winform上控件的拖拽小结
这里罗列出几个相关的事件和属性,具体的实现介绍已有非常优秀的文章了,文章末尾我将会给出,大家可以去参考. 属性: AllowDrop: 目标控件必须设定为true,才能接受拖拽来的东西. 事件: It ...
- WPF 实现控件间拖拽内容
想实现这样一个常用功能:在ListBox的一个Item上点住左键,然后拖拽到另外一个控件(如ListView中),松开左键,数据已经拖拽过来. 步骤如下: 1. 设置ListBox 的AllowDro ...
- winform中文本框添加拖拽功能
对一个文本框添加拖拽功能: private void txtFolder_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataP ...
- 让您的WinForm控件快速支持拖拽文件
实现原理:使用扩展方法. /// <summary> /// 控件扩展 /// </summary> public static class ControlExt { /// ...
- 重写TreeView,自定义图标,生成通行的下划线,取消默认获得焦点失去焦点的效果,并支持拖拽节点到外界
1.运行效果: 2.前端代码 <UserControl x:Class="iPIS.UI.Base.Tree.VideoTreeControl" xmlns="ht ...
- HT for Web列表和3D拓扑组件的拖拽应用
很多可视化编辑器都或多或少有一些拖拽功能,比如从一个List列表中拖拽一个节点到拓扑组件上进行建模,并且在拖拽的过程中鼠标位置下会附带一个被拖拽节点的缩略图,那么今天我们就来实现这样的拖拽效果. 首先 ...
- sortable.js 拖拽排序及配置项说明
// 拖动排序 $(function() { /*排序*/ //排序 // Simple list ]; new Sortable(list, { group: "name", a ...
- html5 Sortable.js 拖拽排序源码分析
最近公司项目经常用到一个拖拽 Sortable.js插件,所以有空的时候看了 Sortable.js 源码,总共1300多行这样,写的挺完美的. 本帖属于原创,转载请出名出处. 官网http:// ...
随机推荐
- C#- 布署WinForm程序
1:新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图) ,此主题相关图片如下: 2:安装向导 关闭后打开 ...
- ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)(转)
前两天也偶尔出现这个错误,也没在意,因为我重新修改一下mysql的root密码后又可以用了,但昨天却不行,我把root密码修改以后虽然当时能用, 一旦重新进入就都不能用了,可我的密码明明没有错啊?今天 ...
- linux如何查进程、杀进程
本文系转载,转载原文地址:http://blog.sina.com.cn/s/blog_637112040100vl53.html 1.查进程 ps命令查找与进程相关的PID号: ps a 显 ...
- 使用OKHttp模拟登陆知乎,兼谈OKHttp中Cookie的使用!
本文主要是想和大家探讨技术,让大家学会Cookie的使用,切勿做违法之事! 很多Android初学者在刚开始学习的时候,或多或少都想自己搞个应用出来,把自己学的十八般武艺全都用在这个APP上,其实这个 ...
- html笔记05:html、css、javascript综合案例
1.首先是html代码: <!-- markup time --> <div class="wrapper wb"> <div class=" ...
- 转:ORACLEERP开发基础之EBS开发基础
转自:http://blog.itpub.net/8781091/viewspace-1012244/ [内容导航] 第1页:开发工具安装 第2页:增加数据块 第3页:注册表单FORM 第4页:注册请 ...
- modelsim remote
远程桌面登陆我的台式机上的账号,然后运行modelsim 出现该问题: Unable to checkout a viewer license necessary for use of the Mod ...
- js基础1
一.JavaScript 不同于Java 有三部分组成 核心(ECMAScript) 文档对象模型(DOM) 浏览器对象模型(BOM) 二.var 是定义数据前加的前缀 三.弹出 alert( ) ...
- JQ 如何设置单选按钮问题
<input type="radio" name="db_12" value="2" checked="checked/&g ...
- Quora图片懒加载
浏览quora的时候发现他的懒加载有点特别,然后就看了一下 然后等图片下载后: 就是上传图片的时候就把图片给压缩成了10X10的小图片,然后加载的时候放大价格模糊的滤镜