通用对话的框的Flags属性取值512(可多选),选择几个文件后,单击确定,这几个所选文件的
名字就能分别显示在Text1的控件组里,改如果写呀...请各位高手帮忙解决,或给点思路..谢谢...
6 个解决方案
#1
http://hi.baidu.com/%B7%BF%B6%F7%BA%EA/blog/item/571de87a7555f0e82e73b38a.html
vb 关于commondialog的多选2008年06月19日 星期四 21:55关于commondialog的多选(如何提取文件名?)
刚写好的,给你一个函数:
Function OpenFile(strFileInfor As String, strFileType As String, blnIsMulti As Boolean, OpenFileDialog As Control) As String()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'OpenFileDialog 通用对话框
'strstrfileInfor 文件提示
'strstrfileType 文件类型,扩展名
'blnblnismulti 是否为多选
'返回为文件名数组,OpenFile(0)存放文件路径,从1开始存放文件名,包括只有一个文件时的情况。
'返回的路径中已经包含了最后的"\"
'如果没有选择任何文件,OpenFileFuction(0)返回为""
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'设置打开文件对话框过滤器
OpenFileDialog.Filter = strFileInfor & "|" & strFileType
'设定是否可以多选
If blnIsMulti Then
OpenFileDialog.Flags = &H80200
OpenFileDialog.MaxFileSize = 1024 '设置使用CommonDialog控件被打开的文件名的最大尺寸
Else
OpenFileDialog.Flags = 0
End If
OpenFileDialog.ShowOpen
'提取各文件名
Dim tempStr As String
Dim tempFileName() As String
tempStr = OpenFileDialog.FileName
'如果用户取消了,或没有选择任何文件,处理返回仍为数组形式,OpenFileFuction(0)为""
If tempStr = "" Then
ReDim tempFileName(0)
tempFileName(0) = ""
OpenFile = tempFileName
Exit Function
End If
Dim P,N As Long
P = 0 '分隔字符位置
N = 0 '文件个数
'提取路径
ReDim tempFileName(1) '至少有一个文件
P = InStr(tempStr, Chr(160)) '为UNICODE
If P = 0 Then '如果只选择了一个文件
P = InStrRev(tempStr, "\") 'P取得"\"所在位置
tempFileName(0) = Left(tempStr, P - 1)
tempFileName(1) = Mid(tempStr, P + 1)
Else '选择了多个文件
Do While tempStr <> ""
P = InStr(tempStr, Chr(160)) '为UNICODE
ReDim Preserve tempFileName(N)
'如果没有空格(只剩余一个文件)
If P = 0 Then
tempFileName(N) = tempStr
Exit Do
Else
tempFileName(N) = Left(tempStr, P - 1)
tempStr = Mid(tempStr, P + 1)
N = N + 1
End If
Loop
EndIf
'处理路径
tempStr = tempFileName(0)
tempFileName(0) = IIf(Len(tempStr) = 3, tempStr, tempStr & "\")
'返回文件名数组
OpenFile = tempFileName
'还原为单选
OpenFileDialog.Flags = 0
End Function
vb 关于commondialog的多选2008年06月19日 星期四 21:55关于commondialog的多选(如何提取文件名?)
刚写好的,给你一个函数:
Function OpenFile(strFileInfor As String, strFileType As String, blnIsMulti As Boolean, OpenFileDialog As Control) As String()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'OpenFileDialog 通用对话框
'strstrfileInfor 文件提示
'strstrfileType 文件类型,扩展名
'blnblnismulti 是否为多选
'返回为文件名数组,OpenFile(0)存放文件路径,从1开始存放文件名,包括只有一个文件时的情况。
'返回的路径中已经包含了最后的"\"
'如果没有选择任何文件,OpenFileFuction(0)返回为""
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'设置打开文件对话框过滤器
OpenFileDialog.Filter = strFileInfor & "|" & strFileType
'设定是否可以多选
If blnIsMulti Then
OpenFileDialog.Flags = &H80200
OpenFileDialog.MaxFileSize = 1024 '设置使用CommonDialog控件被打开的文件名的最大尺寸
Else
OpenFileDialog.Flags = 0
End If
OpenFileDialog.ShowOpen
'提取各文件名
Dim tempStr As String
Dim tempFileName() As String
tempStr = OpenFileDialog.FileName
'如果用户取消了,或没有选择任何文件,处理返回仍为数组形式,OpenFileFuction(0)为""
If tempStr = "" Then
ReDim tempFileName(0)
tempFileName(0) = ""
OpenFile = tempFileName
Exit Function
End If
Dim P,N As Long
P = 0 '分隔字符位置
N = 0 '文件个数
'提取路径
ReDim tempFileName(1) '至少有一个文件
P = InStr(tempStr, Chr(160)) '为UNICODE
If P = 0 Then '如果只选择了一个文件
P = InStrRev(tempStr, "\") 'P取得"\"所在位置
tempFileName(0) = Left(tempStr, P - 1)
tempFileName(1) = Mid(tempStr, P + 1)
Else '选择了多个文件
Do While tempStr <> ""
P = InStr(tempStr, Chr(160)) '为UNICODE
ReDim Preserve tempFileName(N)
'如果没有空格(只剩余一个文件)
If P = 0 Then
tempFileName(N) = tempStr
Exit Do
Else
tempFileName(N) = Left(tempStr, P - 1)
tempStr = Mid(tempStr, P + 1)
N = N + 1
End If
Loop
EndIf
'处理路径
tempStr = tempFileName(0)
tempFileName(0) = IIf(Len(tempStr) = 3, tempStr, tempStr & "\")
'返回文件名数组
OpenFile = tempFileName
'还原为单选
OpenFileDialog.Flags = 0
End Function
#2
http://hi.baidu.com/%B7%BF%B6%F7%BA%EA/blog/item/571de87a7555f0e82e73b38a.html
vb 关于commondialog的多选2008年06月19日 星期四 21:55关于commondialog的多选(如何提取文件名?)
刚写好的,给你一个函数:
Function OpenFile(strFileInfor As String, strFileType As String, blnIsMulti As Boolean, OpenFileDialog As Control) As String()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'OpenFileDialog 通用对话框
'strstrfileInfor 文件提示
'strstrfileType 文件类型,扩展名
'blnblnismulti 是否为多选
'返回为文件名数组,OpenFile(0)存放文件路径,从1开始存放文件名,包括只有一个文件时的情况。
'返回的路径中已经包含了最后的"\"
'如果没有选择任何文件,OpenFileFuction(0)返回为""
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'设置打开文件对话框过滤器
OpenFileDialog.Filter = strFileInfor & "|" & strFileType
'设定是否可以多选
If blnIsMulti Then
OpenFileDialog.Flags = &H80200
OpenFileDialog.MaxFileSize = 1024 '设置使用CommonDialog控件被打开的文件名的最大尺寸
Else
OpenFileDialog.Flags = 0
End If
OpenFileDialog.ShowOpen
'提取各文件名
Dim tempStr As String
Dim tempFileName() As String
tempStr = OpenFileDialog.FileName
'如果用户取消了,或没有选择任何文件,处理返回仍为数组形式,OpenFileFuction(0)为""
If tempStr = "" Then
ReDim tempFileName(0)
tempFileName(0) = ""
OpenFile = tempFileName
Exit Function
End If
Dim P,N As Long
P = 0 '分隔字符位置
N = 0 '文件个数
'提取路径
ReDim tempFileName(1) '至少有一个文件
P = InStr(tempStr, Chr(160)) '为UNICODE
If P = 0 Then '如果只选择了一个文件
P = InStrRev(tempStr, "\") 'P取得"\"所在位置
tempFileName(0) = Left(tempStr, P - 1)
tempFileName(1) = Mid(tempStr, P + 1)
Else '选择了多个文件
Do While tempStr <> ""
P = InStr(tempStr, Chr(160)) '为UNICODE
ReDim Preserve tempFileName(N)
'如果没有空格(只剩余一个文件)
If P = 0 Then
tempFileName(N) = tempStr
Exit Do
Else
tempFileName(N) = Left(tempStr, P - 1)
tempStr = Mid(tempStr, P + 1)
N = N + 1
End If
Loop
EndIf
'处理路径
tempStr = tempFileName(0)
tempFileName(0) = IIf(Len(tempStr) = 3, tempStr, tempStr & "\")
'返回文件名数组
OpenFile = tempFileName
'还原为单选
OpenFileDialog.Flags = 0
End Function
#3
搞什么,不用这么复杂吧...
#4
Private Sub Text1_Click(Index As Integer)
id=index
运行打开文件
end sub
Private Sub 打开文件
If CommonDialog1.FileName <> "" Then
text1(id).text=CommonDialog1.FileName
end if
end sub
只是给你个思路,程序未完善.
id=index
运行打开文件
end sub
Private Sub 打开文件
If CommonDialog1.FileName <> "" Then
text1(id).text=CommonDialog1.FileName
end if
end sub
只是给你个思路,程序未完善.
#5
楼主怎么了,不是在你这帖里已给你解答了吗?:)
http://topic.csdn.net/u/20100304/22/919fc4c3-0eb2-4279-829c-70348810c5a5.html
Commondialog控件,请大家帮帮忙,,谢谢... [控件]
http://topic.csdn.net/u/20100304/22/919fc4c3-0eb2-4279-829c-70348810c5a5.html
Commondialog控件,请大家帮帮忙,,谢谢... [控件]
#6
Private Sub Command1_Click()
Dim a() As String, i As Integer, num As Integer
CommonDialog1.FileName = ""
CommonDialog1.Flags = 512
CommonDialog1.ShowOpen
a = Split(CommonDialog1.FileName)
num = UBound(a)
If num > Text1.Count Then num = Text1.Count
For i = 1 To num
Text1(i - 1) = a(i)
Next
End Su
#1
http://hi.baidu.com/%B7%BF%B6%F7%BA%EA/blog/item/571de87a7555f0e82e73b38a.html
vb 关于commondialog的多选2008年06月19日 星期四 21:55关于commondialog的多选(如何提取文件名?)
刚写好的,给你一个函数:
Function OpenFile(strFileInfor As String, strFileType As String, blnIsMulti As Boolean, OpenFileDialog As Control) As String()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'OpenFileDialog 通用对话框
'strstrfileInfor 文件提示
'strstrfileType 文件类型,扩展名
'blnblnismulti 是否为多选
'返回为文件名数组,OpenFile(0)存放文件路径,从1开始存放文件名,包括只有一个文件时的情况。
'返回的路径中已经包含了最后的"\"
'如果没有选择任何文件,OpenFileFuction(0)返回为""
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'设置打开文件对话框过滤器
OpenFileDialog.Filter = strFileInfor & "|" & strFileType
'设定是否可以多选
If blnIsMulti Then
OpenFileDialog.Flags = &H80200
OpenFileDialog.MaxFileSize = 1024 '设置使用CommonDialog控件被打开的文件名的最大尺寸
Else
OpenFileDialog.Flags = 0
End If
OpenFileDialog.ShowOpen
'提取各文件名
Dim tempStr As String
Dim tempFileName() As String
tempStr = OpenFileDialog.FileName
'如果用户取消了,或没有选择任何文件,处理返回仍为数组形式,OpenFileFuction(0)为""
If tempStr = "" Then
ReDim tempFileName(0)
tempFileName(0) = ""
OpenFile = tempFileName
Exit Function
End If
Dim P,N As Long
P = 0 '分隔字符位置
N = 0 '文件个数
'提取路径
ReDim tempFileName(1) '至少有一个文件
P = InStr(tempStr, Chr(160)) '为UNICODE
If P = 0 Then '如果只选择了一个文件
P = InStrRev(tempStr, "\") 'P取得"\"所在位置
tempFileName(0) = Left(tempStr, P - 1)
tempFileName(1) = Mid(tempStr, P + 1)
Else '选择了多个文件
Do While tempStr <> ""
P = InStr(tempStr, Chr(160)) '为UNICODE
ReDim Preserve tempFileName(N)
'如果没有空格(只剩余一个文件)
If P = 0 Then
tempFileName(N) = tempStr
Exit Do
Else
tempFileName(N) = Left(tempStr, P - 1)
tempStr = Mid(tempStr, P + 1)
N = N + 1
End If
Loop
EndIf
'处理路径
tempStr = tempFileName(0)
tempFileName(0) = IIf(Len(tempStr) = 3, tempStr, tempStr & "\")
'返回文件名数组
OpenFile = tempFileName
'还原为单选
OpenFileDialog.Flags = 0
End Function
vb 关于commondialog的多选2008年06月19日 星期四 21:55关于commondialog的多选(如何提取文件名?)
刚写好的,给你一个函数:
Function OpenFile(strFileInfor As String, strFileType As String, blnIsMulti As Boolean, OpenFileDialog As Control) As String()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'OpenFileDialog 通用对话框
'strstrfileInfor 文件提示
'strstrfileType 文件类型,扩展名
'blnblnismulti 是否为多选
'返回为文件名数组,OpenFile(0)存放文件路径,从1开始存放文件名,包括只有一个文件时的情况。
'返回的路径中已经包含了最后的"\"
'如果没有选择任何文件,OpenFileFuction(0)返回为""
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'设置打开文件对话框过滤器
OpenFileDialog.Filter = strFileInfor & "|" & strFileType
'设定是否可以多选
If blnIsMulti Then
OpenFileDialog.Flags = &H80200
OpenFileDialog.MaxFileSize = 1024 '设置使用CommonDialog控件被打开的文件名的最大尺寸
Else
OpenFileDialog.Flags = 0
End If
OpenFileDialog.ShowOpen
'提取各文件名
Dim tempStr As String
Dim tempFileName() As String
tempStr = OpenFileDialog.FileName
'如果用户取消了,或没有选择任何文件,处理返回仍为数组形式,OpenFileFuction(0)为""
If tempStr = "" Then
ReDim tempFileName(0)
tempFileName(0) = ""
OpenFile = tempFileName
Exit Function
End If
Dim P,N As Long
P = 0 '分隔字符位置
N = 0 '文件个数
'提取路径
ReDim tempFileName(1) '至少有一个文件
P = InStr(tempStr, Chr(160)) '为UNICODE
If P = 0 Then '如果只选择了一个文件
P = InStrRev(tempStr, "\") 'P取得"\"所在位置
tempFileName(0) = Left(tempStr, P - 1)
tempFileName(1) = Mid(tempStr, P + 1)
Else '选择了多个文件
Do While tempStr <> ""
P = InStr(tempStr, Chr(160)) '为UNICODE
ReDim Preserve tempFileName(N)
'如果没有空格(只剩余一个文件)
If P = 0 Then
tempFileName(N) = tempStr
Exit Do
Else
tempFileName(N) = Left(tempStr, P - 1)
tempStr = Mid(tempStr, P + 1)
N = N + 1
End If
Loop
EndIf
'处理路径
tempStr = tempFileName(0)
tempFileName(0) = IIf(Len(tempStr) = 3, tempStr, tempStr & "\")
'返回文件名数组
OpenFile = tempFileName
'还原为单选
OpenFileDialog.Flags = 0
End Function
#2
http://hi.baidu.com/%B7%BF%B6%F7%BA%EA/blog/item/571de87a7555f0e82e73b38a.html
vb 关于commondialog的多选2008年06月19日 星期四 21:55关于commondialog的多选(如何提取文件名?)
刚写好的,给你一个函数:
Function OpenFile(strFileInfor As String, strFileType As String, blnIsMulti As Boolean, OpenFileDialog As Control) As String()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'OpenFileDialog 通用对话框
'strstrfileInfor 文件提示
'strstrfileType 文件类型,扩展名
'blnblnismulti 是否为多选
'返回为文件名数组,OpenFile(0)存放文件路径,从1开始存放文件名,包括只有一个文件时的情况。
'返回的路径中已经包含了最后的"\"
'如果没有选择任何文件,OpenFileFuction(0)返回为""
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'设置打开文件对话框过滤器
OpenFileDialog.Filter = strFileInfor & "|" & strFileType
'设定是否可以多选
If blnIsMulti Then
OpenFileDialog.Flags = &H80200
OpenFileDialog.MaxFileSize = 1024 '设置使用CommonDialog控件被打开的文件名的最大尺寸
Else
OpenFileDialog.Flags = 0
End If
OpenFileDialog.ShowOpen
'提取各文件名
Dim tempStr As String
Dim tempFileName() As String
tempStr = OpenFileDialog.FileName
'如果用户取消了,或没有选择任何文件,处理返回仍为数组形式,OpenFileFuction(0)为""
If tempStr = "" Then
ReDim tempFileName(0)
tempFileName(0) = ""
OpenFile = tempFileName
Exit Function
End If
Dim P,N As Long
P = 0 '分隔字符位置
N = 0 '文件个数
'提取路径
ReDim tempFileName(1) '至少有一个文件
P = InStr(tempStr, Chr(160)) '为UNICODE
If P = 0 Then '如果只选择了一个文件
P = InStrRev(tempStr, "\") 'P取得"\"所在位置
tempFileName(0) = Left(tempStr, P - 1)
tempFileName(1) = Mid(tempStr, P + 1)
Else '选择了多个文件
Do While tempStr <> ""
P = InStr(tempStr, Chr(160)) '为UNICODE
ReDim Preserve tempFileName(N)
'如果没有空格(只剩余一个文件)
If P = 0 Then
tempFileName(N) = tempStr
Exit Do
Else
tempFileName(N) = Left(tempStr, P - 1)
tempStr = Mid(tempStr, P + 1)
N = N + 1
End If
Loop
EndIf
'处理路径
tempStr = tempFileName(0)
tempFileName(0) = IIf(Len(tempStr) = 3, tempStr, tempStr & "\")
'返回文件名数组
OpenFile = tempFileName
'还原为单选
OpenFileDialog.Flags = 0
End Function
#3
搞什么,不用这么复杂吧...
#4
Private Sub Text1_Click(Index As Integer)
id=index
运行打开文件
end sub
Private Sub 打开文件
If CommonDialog1.FileName <> "" Then
text1(id).text=CommonDialog1.FileName
end if
end sub
只是给你个思路,程序未完善.
id=index
运行打开文件
end sub
Private Sub 打开文件
If CommonDialog1.FileName <> "" Then
text1(id).text=CommonDialog1.FileName
end if
end sub
只是给你个思路,程序未完善.
#5
楼主怎么了,不是在你这帖里已给你解答了吗?:)
http://topic.csdn.net/u/20100304/22/919fc4c3-0eb2-4279-829c-70348810c5a5.html
Commondialog控件,请大家帮帮忙,,谢谢... [控件]
http://topic.csdn.net/u/20100304/22/919fc4c3-0eb2-4279-829c-70348810c5a5.html
Commondialog控件,请大家帮帮忙,,谢谢... [控件]
#6
Private Sub Command1_Click()
Dim a() As String, i As Integer, num As Integer
CommonDialog1.FileName = ""
CommonDialog1.Flags = 512
CommonDialog1.ShowOpen
a = Split(CommonDialog1.FileName)
num = UBound(a)
If num > Text1.Count Then num = Text1.Count
For i = 1 To num
Text1(i - 1) = a(i)
Next
End Su