commondialogcommondialog如何加载多个文件。

王朝知道·作者佚名  2009-06-22
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

在.net种有openfiledialog能同时加载多个文件,在VB6种只有commondialog控件,怎么能按住shif键同时加载多个文件呢,请高手指点。

參考答案:

CommonDialog控件的Flags属性有一个标志cdlOFNAllowMultiselect。利用这个标志可以实现多选。如:

CommonDialog1.Flags = CommonDialog1.Flags + cdlOFNAllowMultiselect

无论是在 Windows NT 4.0 还是在 Windows 95 中,如果 cdlOFNAllowMultiselect 标志被单独使用,都不能支持长文件名。这是因为多重文件名要包括空格分隔符,而长文件名也可能包括空格符。在 Windows NT 3.5 中,无法避免这种情况。如果使用 cdlOFNAllowMultiselect,就不能看到长文件名。如果在 Windows 95 中添加 cdlOFNExplorer 标志,就可以既能文件多选,又能看到长文件名。但是,这些文件名是用空字符Chr(0)分隔符,而不是空格分隔符隔开。因此,cdlOFNAllowMultiselect 和 cdlOFNExplorer 一起使用时,在 Windows 95 和 Windows NT 3.5中需要不同的文件名所得结果的语法分析。

当使用 cdlOFNAllowMultiselect 标志时,可能希望增加 MaxFileSize 属性的尺寸以便对所选文件名有足够的内存。MaxFileSize 属性要分配内存以便存储所选的一个或多个文件的实际名称。该属性的范围是 1-32K。缺省值是 256。

下面是一个例子:

Private Sub Command1_Click()

Dim I As Integer

Dim Y As Integer

Dim Z As Integer

Dim FileNames$()

CommonDialog1.FileName = ""

CommonDialog1.Filter = "All Files|*.*"

CommonDialog1.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer

CommonDialog1.Action = 1

CommonDialog1.FileName = CommonDialog1.FileName & Chr(0)

Z = 1

For I = 1 To Len(CommonDialog1.FileName)

I = InStr(Z, CommonDialog1.FileName, Chr(0))

If I = 0 Then Exit For

ReDim Preserve FileNames(Y)

FileNames(Y) = Mid(CommonDialog1.FileName, Z, I - Z)

Z = I + 1

Y = Y + 1

Next

If Y = 1 Then

Text1.Text = FileNames(0)

Else

Text2.Text = ""

For I = 0 To Y - 1

If I = 0 Then

Text1.Text = FileNames(I)

Else

Text2.Text = Text2.Text & UCase(FileNames(I)) & _

Chr$(13) & Chr$(10)

End If

Next

End If

End Sub

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航