所属类别:.NET
文章作者:未知
特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!
HOW TO:从资源管理器中拖放文件到控件当然,这里所谓的文件是指完整的文件名称,至于文件的内容,须按实际情况进一步的操作。我这里的控件为一个ListBox。代码如下: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.ListBox1.AllowDrop = True End Sub Private Sub ListBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter Dim o As Object = e.Data.GetData(DataFormats.FileDrop) If Not o Is Nothing Then e.Effect = DragDropEffects.Copy End If End Sub Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop Dim FileNames As String() = CType(e.Data.GetData(DataFormats.FileDrop), String()) Me.ListBox1.Items.AddRange(FileNames)End Sub重写这个HOW TO,主要的是看到有人用API实现,代码如下: Private Const WM_DROPFILES As Integer = 563 Private Declare Function DragAcceptFiles Lib "shell32.dll" (ByVal hwnd As IntPtr, ByVal accept As Boolean) As Long Private Declare Function DragQueryFile Lib "shell32.dll" (ByVal hDrop As IntPtr, ByVal file As Integer, ByVal fileName As System.Text.StringBuilder, ByVal size As Int32) As Int32 Private Declare Sub DragFinish Lib "Shell32.dll" (ByVal hDrop As IntPtr) Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) If m.Msg = WM_DROPFILES Then Dim iNumOfFiles As Int32 = DragQueryFile(m.WParam, &HFFFFFFFF, Nothing, 0) Dim iPnt As Int32 For iPnt = 0 To iNumOfFiles - 1 Dim sb As New System.Text.StringBuilder(256) Dim iRet As Int32 = DragQueryFile(m.WParam, iPnt, sb, sb.Capacity) ListBox1.Items.Add(sb.ToString) Next DragFinish(m.WParam) Else MyBase.WndProc(m) End If End Sub Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load DragAcceptFiles(ListBox1.Handle, True) End Sub关闭本页
相关信息· 数据库索引介绍及使用
· web service研究--xfire
· ERP 如何改善仓库管理水平
· 我身边的JAVA程序员--算法、架构都是灵魂
1648
31962
