背景

在做一个类似文件树的控件,支持节点从树上向其它的控件拖动程序,但是要保证树上的节点不能拖动上其他的节点上。

代码

        /// <summary>
/// 拖动节点完成
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void treeList_ShowProjectFolder_DragOver(object sender, DragEventArgs e)
{
TreeListNode pTreeListNode = GetNodeByLocation(treeList_ShowProjectFolder, new System.Drawing.Point(e.X, e.Y));
if (pTreeListNode != null)
{
// 设置拖动效果
e.Effect = DragDropEffects.None;
return;
}
}
/// <summary>
/// 获取到鼠标位置的树节点
/// </summary>
/// <param name="treeList"></param>
/// <param name="location"></param>
/// <returns></returns>
private TreeListNode GetNodeByLocation(TreeList treeList, System.Drawing.Point location)
{
// 判断当前鼠标位置是否探测到树的节点
TreeListHitInfo hitInfo = treeList.CalcHitInfo(treeList.PointToClient(location));
return hitInfo.Node;
}

思路

在TreeList的DragOver的事件下添加代码,判断DragOver时鼠标是否与树的节点相交,如果相交,则将拖动的效果变为禁止进入。这里DragEffects是一个枚举。用来表示节点拖动所产生的结果。

namespace System.Windows.Forms
{
// 摘要:
// 指定拖放操作的可能效果。
[Flags]
public enum DragDropEffects
{
// 摘要:
// 拖动时可以滚动目标,以定位在目标中当前不可见的某个放置位置。
Scroll = -,
//
// 摘要:
// System.Windows.DragDropEffects.Copy、System.Windows.Forms.DragDropEffects.Move
// 和 System.Windows.Forms.DragDropEffects.Scroll 效果的组合。
All = -,
//
// 摘要:
// 放置目标不接受该数据。
None = ,
//
// 摘要:
// 将拖动源中的数据复制到放置目标。
Copy = ,
//
// 摘要:
// 将拖动源的数据移动到放置目标。
Move = ,
//
// 摘要:
// 将拖动源中的数据链接到放置目标。
Link = ,
}
}
 
 
 
 

DevExpress TreeList 禁止节点拖动到其他节点上的更多相关文章

  1. Devexpress TreeList控件绑定显示父子节点对像

    今天一位同事咨询Devexpress TreeList控件绑定自动显示父子节点对像,但结果是不会显示带父子节点关系,而是将所有的节点作为父节点显示出来了,对像类的代码如下 public class I ...

  2. Devexpress TreeList 展开和折叠当前选中节点

    1.展开: private void barButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) ...

  3. Winform中双击DevExpress的TreeList的树形节点怎样获取当前节点

    场景 DevExpress的TreeList怎样设置数据源,从实例入手: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10254 ...

  4. [DevExpress][TreeList]节点互斥

    关键代码: /// <summary> /// 节点互斥同步 /// 说明 /// eg: ///TreeListNode _node = e.Node; ///_node.SyncMut ...

  5. EasyUI Tree节点拖动到指定容器

    效果图:将tree节点拖动到指定的DIV中,结果显示节点的id和text 代码: <!DOCTYPE html> <html> <head> <meta ch ...

  6. DevExpress TreeList使用教程之绑定多级树

    DevExpress TreeList使用教程之绑定多级树   概述:TreeList控件可以同时显示树结构和其他数据列,即在一个列上建立父子关系展开或收缩,同时还可以显示其他列的内容.在TreeLi ...

  7. DevExpress TreeList控件的复选框

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking TreeList控件能够同一时候显示树结构和其它数据列,即在一个列上建立父子关系展开或收缩,同一时 ...

  8. 如何让DevExpress TreeList的每个结点高亮显示?

    概述:如何让DevExpress TreeList的每个节点高亮显示? 如何让DXperience TreeList的每个节点高亮显示? 效果如下: private void treeList1_Cu ...

  9. Devexpress treelist 树形控件 实现带三种状态的CheckBox

    树形控件是使用频率很高的一种控件.对于属性控件往往需要下面两个功能 1.TreeList带有CheckBox,并且节点要有三种状态(所有的子节点都选中,所有的子节点都没选择,一部分子节点选中).使用 ...

随机推荐

  1. Stackoverflow上有哪些声望高or值得关注的国人

    Stackoverflow上有哪些声望高/值得关注的国人? 以下回答并不严格按照 Reputation 排名来列,也不收录不确定是Chinese(中国人或华人)的用户,欢迎补充- 1.李杨 @Li L ...

  2. 强化学习(十四) Actor-Critic

    在强化学习(十三) 策略梯度(Policy Gradient)中,我们讲到了基于策略(Policy Based)的强化学习方法的基本思路,并讨论了蒙特卡罗策略梯度reinforce算法.但是由于该算法 ...

  3. Caffe源码理解1:Blob存储结构与设计

    博客:blog.shinelee.me | 博客园 | CSDN Blob作用 据Caffe官方描述: A Blob is a wrapper over the actual data being p ...

  4. Linux V4L2之camera

    一.硬件知识 1. 摄像头硬件结构和工作原理,如图1&图2 外部光线穿过lens镜头,经过红外滤光片后光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字 ...

  5. CSharpGL(50)使用Assimp加载骨骼动画

    CSharpGL(50)使用Assimp加载骨骼动画 在(http://ogldev.atspace.co.uk/www/tutorial38/tutorial38.html)介绍了C++用Asism ...

  6. DOM-based XSS Test Cases

    Case 23 - DOM Injection via URL parameter (by server + client) https://brutelogic.com.br/dom/dom.php ...

  7. SAP HUM 锁住一个HU?

    SAP HUM 锁住一个HU? 1)SAP HUM 不能锁一个已发货的HU! 如下的HU 180141205000已经发货过账, HUMO, 执行, 2)一个WHSE状态的HU就可以被锁定.比如HU ...

  8. MySQL 数据库死锁

    数据库死锁 死锁的解决办法(1) 执行下面SQL,先查看哪些表被锁住了: select b.owner,b.object_name,a.session_id,a.locked_mode from v$ ...

  9. Vue2.x源码学习笔记-Vue源码调试

    如果我们不用单文件组件开发,一般直接<script src="dist/vue.js">引入开发版vue.js这种情况下debug也是很方便的,只不过vue.js文件代 ...

  10. Android开发:Eclipse+OpenCV环境搭建

    一.OpenCV预备: OpenCV是一个跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它由一系列 C 函数和少量 C++ 类构成,同时提供了Pyt ...