C#拖放技术(Drop&Drag)相关方法和事件


C#拖放技术(Drop&Drag)相关方法和事件
1.方法   实现拖放效果时,C#中提供了一个系统方法DoDragDrop方法,用于实现开始拖放操作,该方法由Control类所定义,由于控件均直接或是间接派生于Control类,因此开发人员可以在任何可视化组件中调用DoDragDrop方法。DoDragDrop方法使用语法如下:
public DragDropEffects DoDragDrop ( Object data,DragDropEffects allowedEffects)
data:用户所要拖动的数据内容。必须将所要拖动的内容传入到这个方法的第一个参数位置。
allowedEffects:DragDropEffects枚举值之一,此类型包含了拖动操作的效果。DragDropEffects枚举值如表32.8所示。
表32.8                           DragDropEffects枚举值
枚举值
说明
All
从拖动源复制、移除数据,并将其滚动到放置目标中
Copy
将数据复制到放置目标
Link
将拖动源中的数据链接到放置目标
Move
将拖动源的数据移动到放置目标
None
放置目标不接受该数据
Scroll
即将在放置目标中开始滚动,或当前正在滚动
开发人员在使用DoDragDrop方法时,必须指定参数allowedEffects为表**中的任何一个成员,另外,还可以使用位运算符,把其中的任何一个成员作为一个完整参数传入,以得到所需的拖动效果,实现关键代码如下:
DragDropEffects.Copy| DragDropEffects.None
2.事件

C#中提供了一个系统拖放事件,与拖放方法一起使用来达到更好的效果。常用的拖放事件如表所示。

表   拖放事件

 

名称
说明
DragEnter
当用户在拖放操作过程中首次将鼠标光标拖到控件上时,会引发该事件
DragDrop
在完成拖放操作时发生
GiveFeedback
在执行拖动操作期间发生
DragLeave
如果用户移出一个窗口,则引发DragLeave事件
DragOver
如果鼠标移动但停留在同一个控件中,则引发DragOver事件
QueryContinueDrag
在拖放操作过程中,当键盘或鼠标按钮状态发生变化时,会引发QueryContinueDrag 事件。QueryContinueDrag事件允许拖动源确定是否应取消拖放操作
下面对拖放事件中比较重要的事件进行详细介绍。
(1)DragEnter事件
当用户在拖放操作过程中首次将鼠标光标拖到控件上时,触发该事件。
语法:
public event DragEventHandler DragEnter
该事件为DragEventHandler委托类型,该委托是专门设计用以处理控件的DragEnter、DragDrop、GiveFeedback、DragLeave和DragOver等相关事件的方法。DragEventHandler委托类型的定义语法如下:
public delegate void DragEventHandler(object sender,DragEventArgs e)
该委托封装的方法必须接受两个参数,第一个是object类型对象,该对象用来指定拖放目标对象;第二个为DragEventArgs 类型参数e,它主要包含拖动操作的相关数据。DragEventArgs 类型参数e的相关属性值及说明如表所示。
表  DragEventArgs类型参数e的属性值及说明

 

名称
说明
AllowedEffect
获取拖动事件的发起方(或源)所允许的拖放操作
Data
获取IDataObject,它包含与此事件关联的数据
Effect
获取或设置拖放操作中目标放置效果
KeyState
获取Shift、Ctrl 和 Alt键的当前状态以及鼠标按钮的状态
X
获取鼠标指针在屏幕坐标系中的x坐标
Y
获取鼠标指针在屏幕坐标系中的y坐标
(2)QueryContinueDrag事件
在拖放操作过程中,当键盘或鼠标按钮状态发生变化时,触发该事件。
语法:
public event QueryContinueDragEventHandler QueryContinueDrag
委托定义语法如下:
public delegate void DragEventHandler(object sender, QueryContinueDragEventArgs e)
该委托封装的方法必须接受两个参数,第一个是object类型对象,该对象用来指定为拖放目标对象;第二个为QueryContinueDragEventArgs 类型参数e,它主要包含拖动操作的相关数据。QueryContinueDragEventArgs 类型参数e有一个Action属性,该属性的属性值用来确定是否继续拖动、放置数据或取消操作。Action属性值及说明如表32.11所示。
表  QueryContinueDragEventArgs.Action属性值及说明
名称
说明
Continue
该操作将继续
Drop
该操作以放置而告终
Cancel
操作被取消,没有放置消息
本文来自CSDN博客本文来源:
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:纯C#代码的Excel读取器(不需要Office Excel Com组件)
下一篇:C#.Net对象内存模型及堆/栈数据结构详解 (一)
评论列表

发表评论

评论内容
昵称:
关联文章

C#技术(Drop&Drag)相关方法事件
C#.NET TreeView拽功能(Drag,Drop)
C#内TextBox的Drog&Drop操作
MDI程序子窗体的功能(Drag,Drop)
C#文件操作(DragDrop File)
C# Winform 图片文件到界面
C# 模拟VisualStudio窗体设计器控件
C#获取Windows10屏幕的缩比例
C#深入剖析事件(C# Event详解)
VUE生命周期DOM对象方法、回调函数属性详解
C# DataSetDataTable
[转帖]C#如何实现DataGridView到DataGridView的
CS开发框架自动缩字体功能
C#.Net反射(Reflaction)技术实例详解
C#.NET 定义动态对象dynamic以及属性方法
C# DevExpress TextEdit组件EditValueChanged事件判断触发事件来源
你的框架中是把WCF在BLLDAL之间?
C#方法的参数(实参形参)
.NET构架下RemotingWebService技术区别
C# Winfom控件、窗体、Panel拖动缩、移动位置通用类(ControlMoveTool.cs)

热门标签
.NET5 .NET6 .NET7 APP Auth-软件授权注册系统 Axios B/S B/S开发框架 Bug Bug记录 C#加密解密 C#源码 C/S CHATGPT CMS系统 CodeGenerator CSFramework.DB CSFramework.EF CSFrameworkV1学习版 CSFrameworkV2标准版 CSFrameworkV3高级版 CSFrameworkV4企业版 CSFrameworkV5旗舰版 CSFrameworkV6.0 DAL数据访问层 Database datalock DbFramework Demo教学 Demo下载 DevExpress教程 DOM EF框架 Element-UI EntityFramework ERP ES6 Excel FastReport GIT HR IDatabase IIS JavaScript LINQ MES MiniFramework MIS NavBarControl Node.JS NPM OMS ORM PaaS POS Promise API Redis SAP SEO SQL SQLConnector TMS系统 Token令牌 VS2022 VSCode VUE WCF WebApi WebApi NETCore WebApi框架 WEB开发框架 Windows服务 Winform 开发框架 Winform 开发平台 WinFramework Workflow工作流 Workflow流程引擎 版本区别 报表 踩坑日记 操作手册 代码生成器 迭代开发记录 基础资料窗体 架构设计 角色权限 开发sce 开发技巧 开发教程 开发框架 开发平台 开发指南 客户案例 快速搭站系统 快速开发平台 秘钥 密钥 权限设计 软件报价 软件测试报告 软件简介 软件开发框架 软件开发平台 软件开发文档 软件体系架构 软件下载 软著证书 三层架构 设计模式 生成代码 实用小技巧 收钱音箱 数据锁 数据同步 微信小程序 未解决问题 文档下载 喜鹊ERP 喜鹊软件 系统对接 详细设计说明书 行政区域数据库 需求分析 疑难杂症 蝇量级框架 蝇量框架 用户管理 用户开发手册 用户控件 在线支付 纸箱ERP 智能语音收款机 自定义窗体 自定义组件 自动升级程序