C# 拖放操作

news2024/11/19 8:29:15

一 拖放操作

拖放操作Drag and Drop是两个窗口之间传递数据的一种手段。
在这里插入图片描述

1 拖放操作两部分:拖Drag、放Drop

几个术语:
① 源窗口:发起拖拽StartDrag;
② 目标窗口:接受拖放AcceptDraop;
③ 拖拽物:即传输的数据DataObject;

2 拖放的数据类型

① 纯文本;
② 富文本;
③ 图片;
④ URL等;

二 拖放的数据类型

拖放的数据类型,常见的有:
① 纯文本;
② 图片;
③ 富文本/带格式文本;
④ 超链接/文件路径等。

观察拖放物种的数据类型:

string[] formats=e.Data.GetFormats();
foreach(string fmt in formats)
{
   Console.WriteLine("格式:"+fmt);
}

一般来说,应用程序只接受固定的类型。
例如:
PhotoShop:接受图片数据/文件路径;
NotePad:接受纯文本数据;
Word:接受文本、HTML、图片、文件路径、超链接。
在DragEnter事件处理中,检查和判断数据类型。

在DragEnter事件处理中,检测和判断数据类型。

if(e.Data.GetDataPresent("System.String"))
{
  e.Effect=DragDropEffects.All;
}

如果未设置,则e.Effect的默认值为None。

注意:
GetDataPresent重载2个版本:
GetDataPresent(string format);
GetDataPresent(Type type);
也可以传typeof(string)将一个类型名传入。
如果不理解typeof的用法,可以用字符串形式。

三 复制与移动

拖放的操作类型:
① None无操作;
② Copy复制;
③ Move移动;
④ All 任意;
一般地,拖放时按住CTRL键,表示复制;
在复制操作是,光标下方先生一个加号;
在操作完成时,通知源窗口操作的类型:
void panel1_DragDrop(sender,e)
{
string str=(string)e.Data.GetData(typeof(striing));
e.Effect=DragDropEffects.Copy;
}
这仅仅是一个提示,具体的后续操作由源窗口的自己决定。

四 接受文件拖放

判断拖放的数据类型“FileDrop”:
如果不确定格式,可以先打印检查一下:

string[] formats=e.Data.GetFormats();
foreach(string fmt in formats)
{
   Console.WriteLine("格式:"+fmt);
}

取得拖拽的数据:
object dragData=e.Data.GetData(“FileDrop”);

Winform 内部已经对数据作了转换,转成C#里的类型,如果不确定,可以单步调试检查一下:

string[] files=(string[])dragData;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69897.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT有多厉害,影响到谷歌地位?

AI神器ChatGPT 火了。 能直接生成代码、会自动修复bug、在线问诊、模仿莎士比亚风格写作……各种话题都能hold住,它就是OpenAI刚刚推出的——ChatGPT。 有脑洞大开的网友甚至用它来设计游戏:先用ChatGPT生成游戏设定,再用Midjourney出图&…

外贸小白,一直不出单怎么办?

米贸搜今天,试着给新人一些方法和技巧,让你尽快在公司立足! 事实上,规定几个月内下单的公司,往往都是平台有投资,去展会了,有大量营销费用的公司。当然,老板急着收回成本。对于有足…

网络基本概念

文章目录前言网络分层原因网络分层模型各层大致用途主机网络层网际层传输层应用层总结前言 在日常开发中,大家总是会或多或少的遇到一些网络通信的相关代码,如http请求调用。但是我们却不知道,数据是怎么从一台计算机到另一台计算机的&#…

opcj-如何通过一个项目征服Java

Java早已经不是高大山的稀世珍品了,程序员也不再是高科技工作者,而被称为码农 ,为什么呢?因为Java后台的很多基础技术都已经固定了,也就是说主要你从头到尾学一遍就能会 ,淘宝双十一搞不定,但是…

2022-12-07 小米pro路由(R3G) 刷固件 openwrt

环境准备:路由开启SSH 1.先登录小米开发者平台,解开小米路由的SSH http://www.miwifi.com/miwifi_open.html 2.路由连接电脑,通过SSH可直接登录到小米路由 本教程以R3G 为例 第一步: 刷入 BREED 如何刷入breed 不同设备方法不同,可以直接U…

通俗地讲讲数据降维的原理

什么是数据降维?关于这个问题,很多专家的说法都非常学术,估计很多普通人听不懂。所以,这里用通俗的语言解释一下,希望有助于更多的入门新人理解。 举一个简单的例子:假设一个小学的班级有5个学生&#xff…

Spring Boot 入门到精通(一)

文章目录一、Spring Boot 介绍1. 概念2.maven构建Spring Boot项目3. 自定义banner4. Spring Boot的全局配置文件5. Spring Boot项目的发布方式二、Spring Boot注入方式1. Value方式2. ConfigurationProperties方式3. SpringBoot默认注入方式4. SpringBoot中的默认配置三、Sprin…

Element组件库的用法步骤

Element地址:适用于pc端后台开发 Element - The worlds most popular Vue UI frameworkElement,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库https://element.eleme.io/#/zh-CN/ 下载 点击 “组件”在安装部分有下载命令&#xf…

东京大学和积水房屋启动生物多样性和健康联合研究

东京大学农业与生命科学研究生院(GSALS)和积水房屋株式会社(Sekisui House, Ltd.)将于2022年12月1日启动关于生物多样性和人类健康的联合研究项目。该项目将调查生物多样性和城市自然环境对人类健康和幸福的益处。这项全球首创的举措将全面调查居民与附近生物多样性丰富的花园环…

Java入门教程(17)——循环语句

文章目录1.while 循环2. do-while 循环3. for 循环我们表白的时候,你可以做我女朋友么,这次拒绝了,下次“你可以做我女朋友么”,直到同意做你女朋友。以后就不会再问了,这就是循环1.while 循环 语法结构: w…

从“挖土豆”到全场景营销,纷享销客CRM如何助力噢易云可持续增长?

近年来,随着云计算技术的发展和普及,桌面云也得到了越来越广泛的应用,尤其是在教育、医疗、金融、能源、连锁等对安全、成本和系统化管控有着强要求的行业中。 根据第三方研究机构的统计,2021年中国桌面云整体解决方案销量达到了…

Java Object类常用API

JavaObject类常用API\huge{Java\space Object类常用API}Java Object类常用API API 首先解释一下什么是APIAPIAPI。 API(ApplicationProgramminginterface)API(Application Programming interface)API(ApplicationProgramminginterface):应用程序编程接口。 简单来…

docker 查看容器启动命令(已运行的容器)

eg: 1 docker ps 查看正在运行的容器: 通过docker ps命令 该命令主要是为了详细展示查看运行时的command参数 docker ps -a --no-trunc | grep container_name # 通过docker --no-trunc参数来详细展示容器运行命令 通过docker inspect命令 使用docker inspect,但…

Letbook Cookbook题单——数组3

Letbook Cookbook题单——数组3 48. 旋转图像 难度中等 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1:…

左(7)--kmp,manacher,morris

前言 仅记录学习笔记,如有错误欢迎指正。 题目: 思路:实现1个函数infect(),把1连接的位置都变为2,此时算一个岛。 如何设计一个并行算法解决这个问题? 在多个cpu中 每次存入分界线的信息,…

拓扑排序与关键路径

一、拓扑排序 1.1 什么是拓扑排序 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序&#xff0c;是将G中所有顶点排成一个线性序列&#xff0c;使得图中任意一对顶点u和v&#xff0c;若边<u,v>∈E(G)&#xff0c;则u在线性序列中出现在v之前。通常&#x…

入驻淘宝成人用品店铺要什么证件?

在淘宝店铺开一家淘宝店铺&#xff0c;必须要有成人用品特种经营许可证&#xff0c;没有申请成人用品特种经营许可证的店铺&#xff0c;在淘宝上是发布不了成人用品类目宝贝的&#xff0c;那么&#xff0c;有的店主就有疑问了&#xff1a;成人用品特种经营许可证要在哪里去申请…

基于Spring Boot+Vue+MySQL的理财平台的设计与实现

目 录 摘 要 I Abstract II 目 录 III 图清单 V 表清单 VII 1 绪论 1 1.1 理财平台的现状与发展 1 1.2吾爱理财平台的研究内容 2 1.3 吾爱理财平台的研究目的和意义 2 1.4 本章小结 3 2 本吾爱理财平台的分析 4 2.1 可行性分析 4 2.2 需求分析 4 2.3 框架介绍 6 2.4 本章小结 …

商用、无版权图片素材网站,赶紧马住。

很多朋友不知道去哪里找图片素材&#xff0c;网上找的质量不高先不说&#xff0c;就怕使用不当造成侵权。今天给大家分享6个可商用&#xff0c;还高质量的图片素材网站。1、菜鸟图库 https://www.sucai999.com/pic.html?vNTYwNDUx菜鸟图库网站素材类型很多&#xff0c;像设计、…

【Python游戏】Python实现一个植物大战僵尸小游戏,非常简单,可以用于做毕业设计哟 | 附源码

前言 halo&#xff0c;包子们下午好 今天给打击整一个植物大战僵尸 无广告版本 哈哈 说实话&#xff0c;现在的小游戏很多都是有广告&#xff0c;多少有点难受 今天给大家直接安排 相关文件 关注小编&#xff0c;私信小编领取哟&#xff01; 当然别忘了一件三连哟~~ 源码点…