背景

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

代码

        /// <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. Github:修改Github仓库中项目语言类型

    前述 有的时候我们把项目上传到github仓库上时语言会显示错误语言 比如一个java项目可能因为有js文件的存在而被识别为js项目 这种时候我们就要手动去修改Github的项目语言类型 解决办法 在 ...

  2. 生产环境一键创建kafka集群

    前段时间公司的一个kafka集群出现了故障,由于之前准备不足,当时处理的比较慌乱.如:由于kafka的集群里topic数量较多,并且每个topic的分区数量和副本数量都不是一样的,如果按部就班的一个一 ...

  3. Java进阶篇之十五 ----- JDK1.8的Lambda、Stream和日期的使用详解(很详细)

    前言 本篇主要讲述是Java中JDK1.8的一些新语法特性使用,主要是Lambda.Stream和LocalDate日期的一些使用讲解. Lambda Lambda介绍 Lambda 表达式(lamb ...

  4. WPF 小小案列(同步异步)

    private void BtnButton_Click(object sender, RoutedEventArgs e) { MessageBox.Show("hello Word&qu ...

  5. JAVA设计模式之简单粗暴学建造者模式

    文章由浅入深,先用简单例子说明建造者,然后分析模式的优缺点,最后结合优秀开源框架Mybatis,说明该模式的用处. 1.先定义一个机器人模型 package com.jstao.model; publ ...

  6. OKR能解决996吗?德鲁克怎么看?

    最近网络上热议的“996”,不由让人想起我们的邻国日本.他们在20年前就有过一个热词“过劳死”,就是职场加班太严重导致的猝死. 最近有一本书新书<过劳时代>,说的就是日本20年前的过劳死. ...

  7. IdentityServer4 知多少

    1. 引言 现在的应用开发层出不穷,基于浏览器的网页应用,基于微信的公众号.小程序,基于IOS.Android的App,基于Windows系统的桌面应用和UWP应用等等,这么多种类的应用,就给应用的开 ...

  8. dotnet中Stream、string及byte[]的相关操作

    string与byte[](UTF-8) //string to byte[] string str = "abc中文"; //0x61 0x62 0x63 0xE4 0xB8 0 ...

  9. Java引用详解-StrongReference SoftReference WeakReference PhantomReference

    1 Java引用介绍 Java从1.2版本开始引入了4种引用,这4种引用的级别由高到低依次为:    强引用  >  软引用  >  弱引用  >  虚引用 ⑴强引用(StrongR ...

  10. 从壹开始前后端分离 [ vue + .netcore 补程 ] 三十一║ Nuxt终篇:基于Vuex的权限验证探究

    缘起 哈喽大家好,今天周四啦,楼主明天要正式放假了,这里先祝大家节日快乐咯,希望在家里能继续研究点儿东西吧,今天呢是 nuxt 的最后一篇,主要是对权限登录进行研究,这一块咱们之前在说第一个项目的时候 ...