[摘要]这里我们主要简单的讨论一下,如何从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
……