博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DevExpress TreeList 禁止节点拖动到其他节点上
阅读量:7071 次
发布时间:2019-06-28

本文共 1724 字,大约阅读时间需要 5 分钟。

背景

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

代码

///         /// 拖动节点完成        ///         ///         ///         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;            }        }        ///         /// 获取到鼠标位置的树节点        ///         ///         ///         /// 
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 = -2147483648,        //        // 摘要:        //     System.Windows.DragDropEffects.Copy、System.Windows.Forms.DragDropEffects.Move        //     和 System.Windows.Forms.DragDropEffects.Scroll 效果的组合。        All = -2147483645,        //        // 摘要:        //     放置目标不接受该数据。        None = 0,        //        // 摘要:        //     将拖动源中的数据复制到放置目标。        Copy = 1,        //        // 摘要:        //     将拖动源的数据移动到放置目标。        Move = 2,        //        // 摘要:        //     将拖动源中的数据链接到放置目标。        Link = 4,    }}

 

 
 
 
 

转载于:https://www.cnblogs.com/MaFeng0213/p/8059580.html

你可能感兴趣的文章
CentOS用户和组管理
查看>>
Python 排序--简单选择排序
查看>>
我的友情链接
查看>>
openstack概述
查看>>
How To Detect Which Element Was Clicked, Using jQuery
查看>>
javascript & jQuery
查看>>
DW快速去除tppabs冗余代码
查看>>
Java8新特性之:新的日期和时间API
查看>>
如何才能从程序员成长为实战型架构师?必掌握这7大实战技能经验
查看>>
rabbitMQ集群的搭建和维护第二篇---利用python程序完成mq的消息收发和实时监控
查看>>
网众设置开机重启服务的命令,才可连接BOOT服务器
查看>>
数字签名基本原理
查看>>
RHEL6.3 DNS配置详解一 DNS相关概念理解及配置基础
查看>>
Windows环境 和 Linux环境下搭建Qt开发环境
查看>>
简述synchronized和java.util.concurrent.locks.Lock的异同
查看>>
辅DNS服务器部署文档(for linux平台)
查看>>
weblogic安装问题
查看>>
在win2008r2下开启ntp服务
查看>>
我的友情链接
查看>>
SpringMVC源码解析(三)——HandlerAdapter
查看>>