明辉站/技术开发/内容

从Windows资源管理器中拖动文件

技术开发2023-08-15 阅读
[摘要]这里我们主要简单的讨论一下,如何从Windows资源管理器中拖动一组文本,然后将它们拖放到一个文本框控件中就可将文件全部打开。为了说明这一点,以下过程可用一个文本框控件以及OLEDragOver和OLEDragDrop事件,并用DataObject对象中的Files属性和vbCFFiles数据格式...
这里我们主要简单的讨论一下,如何从Windows资源管理器中拖动一组文本,然后将它们拖放到一个文本框控件中就可将文件全部打开。
为了说明这一点,以下过程可用一个文本框控件以及OLEDragOver和OLEDragDrop事件,并用DataObject对象中的Files属性和vbCFFiles数据格式打开一组文本文件。

首先在Visual Basic中启动新的工程。向窗体添加一个文本框控件并将其OLEDropMode属性设置为"手工"。将MultiLine属性设置为True,将ScrollBars设为2-Vertical,并清除Text属性

代码如下:

Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Data.GetFormat(vbCFFiles) Then
        For Each vfn In Data.Files '循环打开文件
            Open vfn For Input As #1
            Do While Not EOF(1)
                Line Input #1, linefile
                Text1 = Text1 & linefile & vbCrLf
            Loop
            Close #1
        Next vfn
    End If
End Sub

下列事件中,用GetFormat方法检测兼容的数据格式(vbCFFiles)
Private Sub Text1_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer)
    If Data.GetFormat(vbCFFiles) Then
        '若数据格式正确,则把即将执行的操作通知源
        Effect = vbDropEffectCopy And Effect '放下的结果为复制
        Exit Sub
    End If
    '若数据格式不合适,则不放下
    Effect = vbDropEffectNone
End Sub

……

相关阅读