VB6.0 关于如何便捷的使用 打开文件 保存文件对话框,而不使用CommonDialog控件

对于VB6.0 CommonDialog控件 非标准控件,如果用该控件编程后,程序挪到其他的电脑,有可能会提示无法找到CommonDialog.ocx的报错,因此我这里还是尽量避免使用CommonDialog控件。

那么不使用CommonDialog控件,还有别的好方法吗?

这里网上找了很多资料,自己总结了一下,下面附上代码,

'打开文件对话框,获取文件,返回值是数组,里面包含带路径的文件名,如果没有选择,返回一维空数组。Path是初始路径,Fliter是文件格式过滤关键字
Public Function GetFileDlg(Optional ByVal Path As String = "", Optional ByVal Fliter As String = "所有文件 (*.*)|*.*") As String()
    Dim FileDlg As Object           ' 文件对话框
    Dim FilePath, Stemp() As String
    Dim OutFiles() As String
    Dim i As Integer
    
    Set FileDlg = CreateObject("MSComDlg.CommonDialog")

    ' 打开附件
    FileDlg.DialogTitle = "选择文件"
    FileDlg.Filter = Fliter
    FileDlg.FilterIndex = 2
    FileDlg.flags = &H80200  ' &H80200一次性可以选择多个文件,&H80000 每次只能选择一个文件
    FileDlg.initdir = Path
    FileDlg.ShowOpen
    FilePath = FileDlg.fileName
    If FilePath <> "" Then
        If InStr(1, FilePath, Chr(0)) <> 0 Then
            Stemp = Split(FilePath, Chr(0))
            ReDim OutFiles(UBound(Stemp) - 1)
            For i = 1 To UBound(Stemp)
                OutFiles(i - 1) = Stemp(0) & "\" & Stemp(i)
            Next
        Else
            ReDim OutFiles(0)
            OutFiles(0) = FilePath
        End If
    Else
        ReDim OutFiles(0)
    End If
    GetFileDlg = OutFiles
End Function

'保存文件,Path是初始路径,DefaultFileName 是缺省显示的文件名
Public Function SaveFileDlg(Optional ByVal Path As String="",Optional  ByVal DefaultFileName As String="") As String
    Dim FileDlg As Object           ' 文件对话框
    
    Set FileDlg = CreateObject("MSComDlg.CommonDialog")
    With FileDlg
        .DialogTitle = "选择文件"
        .Filter = "所有文件 (*.*)|*.*"
        .flags = &H80000   '新的对话框格式,只能选一个文件 ,不这么申明就是老格式了,自己可以试验下
        .fileName = DefaultFileName
        .initdir = Path
        .showsave
    End With
    SaveFileDlg = FileDlg.fileName
    
End Function

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值