Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  Vb.net  >  正文 在VB.NET中实现文件的拖放

在VB.NET中实现文件的拖放

发布时间:2018-09-24   编辑:www.jquerycn.cn
jquery中文网为您提供在VB.NET中实现文件的拖放等资源,欢迎您收藏本站,我们将为您提供最新的在VB.NET中实现文件的拖放资源
本文介绍了在VB.NET中如何实现接受拖放的文件,即从资源管理器中拖放到应用程序中的时候,自动获取拖放的文件。文中的例子是一个接受拖放文件显示文件内容的VB.NET实例程序。
引言:
对于文本格式的文件,我们可以直接拖到记事本中就可以看到内容;各种类型的图片,拖到Photoshop中,就可以直接对其编辑。我们如何在VB.NET开发的程序也实现上述效果呢?
思路:
我们知道,每一个Windows的应用程序都有一个消息队列,程序的主体接受系统的消息,然后分发出去(给一个form,或者一个控件),接受者有相应的程序来处理消息。在.NET的Form中,默认情况下程序是不翻译这些消息的,也就是说默认我们的Class是不加入应用程序的消息泵。能不能把我们的Form Class加入应用程序的消息泵呢?可以!
在.NET中,任何一个实现IMessageFilter 接口的类,可以添加到应用程序的消息泵中,以在消息被调度到控件或窗体之前将它筛选出来或执行其他操作。使用 Application 类中的 AddMessageFilter 方法,可以将消息筛选器添加到应用程序的消息泵中。
于是我们在程序加载的时候,调用Application.AddMessageFilter(Me)。然而,默认情况下一个Form或者控件是不能接受拖放的文件的,我们调用一个WIN32 API DragAcceptFiles,这个API可以设置对应的控件是否能接受拖放的文件。然后可以用DragQueryFile查询拖放到的文件列表,也就是拖放文件地具体路径和文件名。

代码:
Imports System.Runtime.InteropServices
Public Class Form1
Inherits System.Windows.Forms.Form
Implements IMessageFilter
' API申明
Const WM_DROPFILES = &H233 '拖放文件消息

<DllImport("shell32.dll")> Public Shared Sub DragFinish(ByVal hDrop As Integer)
End Sub
<DllImport("shell32.dll")> Public Shared Sub DragAcceptFiles(ByVal hwnd As Integer, ByVal fAccept As Boolean)

您可能感兴趣的文章:
在VB.NET中实现文件的拖放
HTML5中如何实现图片的拖放
分享一个HTML5实现拖放的实例代码
HTML5拖放:Drag和Drop分别指什么?怎么使用的?
如何用H5实现拖放效果
用VB.net做一个Windows Explore式的窗口。(TreeView、Splitter、L
html5中在可拖动元素或选取的文本正在拖动到放置目标时触发的事件ondragover
如何使用HTML5实现多个元素的拖放功能
HTML5 高级教程--拖放 API 实现拖放排序
如何使用jQuery Draggable和Droppable实现拖拽功能

[关闭]