五分钟学会VB.NET实现拖放

开发 后端
这里介绍VB.NET实现拖放,这篇文章列举了如何在窗体内、窗体之间,甚至应用程序之间移动文本、图片或者文件的例子,显示了在VB.NET实现拖放是非常容易得。

VB.NET还是比较常用的,于是我研究了一下VB.NET实现拖放,在这里拿出来和大家分享一下,希望对大家有用。Windows用户一般分为两类:一类习惯用键盘操作,一类习惯用鼠标操作。程序员们在编程时一般会提供快捷键(在命令或字母中加下划线)或快捷方式(用CTRL加字母的组合)来照顾到那些习惯键盘的用户,但是那些鼠标用户却被忽略了。因为程序员们一般都习惯用键盘,所以他们这种重视键盘操作的特点是可以理解的,但是每个程序员也应该考虑到提供鼠标支持。

鼠标用户所期望的一件事就是能够在应用程序中VB.NET实现拖放。如果你注意到一些大型应用程序或windows自身的话,拖放操作几乎随处可见。例如,用户可能已经习惯了在windows资源管理器中拖放文件,或在word中拖放文本等操作了。

尽管拖放操作随处可见,但是只有极少数程序员在他们所编写的程序中实现拖放功能,最可能的原因是他们认为VB.NET实现拖放可能比想象的还要难。这篇文章列举了如何在窗体内、窗体之间,甚至应用程序之间移动文本、图片或者文件的例子,显示了在VB.NET实现拖放是非常容易得。

拖放如何进行

拖放实际上就如同用鼠标复制粘帖,因此你必须有一个可以复制或移动的源,也要有一个可以粘贴的目的地。在这两个操作过程中,数据是保存在内存中的。复制粘贴用的是剪切版,而拖放用的却是一种本质上是私有剪切板的Dataobject的对象。
下面是典型的托放操作的时间序列:

1、拖放(dragging)是通过调用源控件的DoDragDrop方法来初始化的,DoDragDrop有两个参数
◆data,指定将要传送的数据
◆allowedEffects,指定允许进行的操作(复制或移动)
这样自动创建了一个新的Dataobject对象

2、接下来就依次激发了GiveFeedBack事件。在大多数情况下,你并不需要担心GiveFeedBack事件,然而你如果想自定义拖放过程中的鼠标指针的话,你可以在这些地方加上你的代码。

3、任何有AllowDrop属性而且被设置成True的控件都是隐含的Drop对象。AllowDrop属性可以在设计时的属性窗口中进行设置,也可以在Form_load事件自动加载。

4、当鼠标移到某个控件时,就同时激发了这个控件的DragEnter事件。GetDataPresent方法是用来确认拖过来的数据是否适合目标控件,Effect属性是用来显示适当的鼠标指针。

5、如果用户在有效的目标控件上释放鼠标,就同时激发了DragDrop事件。DragDrop事件句柄中的代码从DataObject对象中释放数据并把它显示在目标控件中。

【编辑推荐】

  1. 分析VB QuickSort应用程序
  2. 如何掌握强大的VB.NET ReadLine()方法
  3. 讲述强大的VB.NET Web Forms,使用起来却如此简单
  4. 两步就可以掌握VB使用ArrayList类
  5. VB.NET应用程序的入门指南
责任编辑:佚名 来源: IT168
相关推荐

2009-11-04 13:12:33

VB.NET面向对象编

2009-10-26 15:45:43

VB.NET类构造

2009-10-30 13:12:40

VB.NET创建类

2009-10-26 19:09:50

VB.NET转换形态

2009-11-10 11:54:12

VB.NET按钮

2009-11-03 17:15:07

VB.NET开发Exc

2010-01-13 17:47:59

VB.NET拖放

2009-11-03 11:01:45

VB.NET远程事件

2009-10-28 11:44:34

VB.NET资源文件

2009-11-10 16:05:21

VB.NET格式化

2022-03-08 08:39:22

gRPC协议云原生

2009-10-21 18:28:48

VB.NET表间拖放

2009-10-29 16:22:10

VB.NET操作MyS

2009-10-28 10:58:34

VB.NET定时器事件

2009-11-03 16:43:54

VB.NET拖放文件

2009-10-27 09:17:26

VB.NET生成静态页

2022-05-30 08:34:49

PythonSQL

2009-11-16 09:53:56

PHP上传类

2009-10-26 16:49:27

VB.NET正则表达式

2009-11-11 13:46:41

ADO.NET异步查询
点赞
收藏

51CTO技术栈公众号