| 网站首页 | 模板 | 资料 | 源码 | 工具 | 开发 | 设计 | 安全 | 项目 | 网络 | 图片 | 系统 | 数据库 | 博客 | 会员中心 | 小说 | 
MYFTP 精品资料下载
网络学院
学习资料
源码模版
您现在的位置: 精品下载 >> 开发 >> .net >> 文章正文 用户登录 新用户注册
HOW TO:从资源管理器中拖放文件到控件            【字体:
HOW TO:从资源管理器中拖放文件到控件
作者:佚名    文章来源:不详    点击数:    更新时间:2007-10-7

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

 




文章录入:chqnet    责任编辑:chqnet 
  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    CSS+DIV设计:Hover over下的
    CSS+DIV实现Yahoo搜索框的制
    阴影效果滤镜DropShadow颜色
    实例详解CSS滤镜(8)Shadow属
    实例详解CSS滤镜(5)DropShad
    实例详解CSS滤镜(6)Glow属性
    内嵌滚动条(windows UpDate风
    DropShadow属性、Chroma属性
    Invert属性、Glow属性和Flip
    详细了解Anchor标记
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)