通过什么配置使得在打开文件的对话框中可选择多个文件,在线结分,先谢了

解决方案 »

  1.   

    With dlgCommonDialog
            .DialogTitle = "Open"
            .Flags = &H4
            .CancelError = True
            .Flags = cdlOFNAllowMultiselect + cdlOFNExplorer        'ToDo: set the flags and attributes of the common dialog control
            .Filter = "java文件(*.java)|*.java|HTML文件(*.html;*.htm)|*.html;*.htm|文本文件(*.txt)|*.txt|All Files (*.*)|*.*"
            .ShowOpen
            If Len(.FileName) = 0 Then
                Exit Sub
            End If
            sFile = .FileName
        End With
      

  2.   

    是 .Flags = cdlOFNAllowMultiselect + cdlOFNExplorer
    在起作用
      

  3.   

    是 .Flags = cdlOFNAllowMultiselect + cdlOFNExplorer
    在起作用
      

  4.   

    在Form1 上 添 加 一 个 公 共 对 话 框 控 件, 采 用 缺 省 的 方 法 建 立CommonDialog1。 在Form1 上 添 加 一 个 文 本 框 控 件, 采 用 缺 省 的 方 法 建 立Text1。 在Form1 上 添 加 第 二 个 文 本 框 控 件, 采 用 缺 省 的 方 法 建 立Text2。 将 它 的MultiLine 属 性 设 置 为True。 在Form1 上 添 加 一 个 命 令 按 钮 控 件, 采 用 缺 省 的 方 法 建 立Comand1。 将 如 下 的 代 码 添 加 到Command1 的 单 击 事 件 中: 
    Private Sub Command1_Click()
    Dim I As Integer
    Dim Y As Integer
    Dim Z As Integer
    Dim FileNames$()Const OFN_ALLOWMULTISELECT = &H200&CommonDialog1.filename = ""
    CommonDialog1.Filter = "All Files|*.*"
    CommonDialog1.Flags = OFN_ALLOWMULTISELECT
    CommonDialog1.Action = 1CommonDialog1.filename = CommonDialog1.filename & Chr(32)Z = 1
    For I = 1 To Len(CommonDialog1.filename)
    I = InStr(Z, CommonDialog1.filename, Chr(32))
    If I = 0 Then Exit For
    ReDim Preserve FileNames(Y)
    FileNames(Y) = Mid(CommonDialog1.filename, Z, I - Z)
    Z = I + 1
    Y = Y + 1
    NextIf 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
      

  5.   

    从公共对话框控件中提取多个文件名称 
    -在Visual Basic 程 序 中, 公 共 文 件 对 话 框 控 件 让 用 户 很 容 易 地 选 取 一 个 或 多 个 文件, 文 本 将 介 绍 如 何 从 公 共 对 话 框 控 件 中 提 取 所 选 择 的 文 件 名 称。使 用 公 共 对 话框 控 件---- Visual Basic 的 公 共 文 件 对 话 框 控 件 允 许 程 序 员 为 用 户 提 供 对 硬盘 上 的 目 录 和 文 件 结 构 进 行 访 问。 例 如, 如 果 用 户 需 要 选 择 一 个 文 本 文 件, 可 以 显 示 出 一个 公 共 文 件 对 话 框 控 件, 以 允 许 用 户 浏 览 各 个 目 录, 直 至 找 到 需 要 的 文 件 位置。---- 通 过 将 公 共 对 话 框 控 件 的Flags 属 性 设 置 为 常 量值OFN_ALLOWMULTISELECT, 可 以 使 用 户 能 够 选 择 几 个 文 件 以 进 行 工 作。 可 以 通 过 在 按住ctrl 键 的 同 时 单 击 每 个 文 件 名 称 来 选 中 多 个 文 件。 这 些 被 选 中 的 文 件 名 称 将 被 高亮。---- 为 了 使 程 序 能 够 针 对 用 户 所 选 择 的 文 件 进 行 工 作, 需 要 从 控 件的Filename 属 性 中 提 取 每 个 文 件 的 名 称。 所 有 被 用 户 选 中 的 文 件 名 称 都 被 作 为 一 个 长 字符 串 而 存 储 在 该 属 性 中。 每 个 文 件 名 称 之 间 被 一 个 空 格 字 符 分 开。---- 可 以 使用InStr 函 数 来 搜 索 分 界 的 空 格 字 符 以 从 公 共 对 话 框 的Filename 属 性 中 提 取 每 个 文 件 名称。 该InStr 函 数 返 回 在Filename 属 性 字 符 串 中 空 格 字 符 的 位 置。 得 到 空 格 字 符 的 位 置后, 就 可 以 使 用Mid 函 数 来 将 独 立 的 文 件 名 称 从 该 字 符 串 中 移 出。样 例 程序---- 该 程 序 显 示 了 如 何 提 取 在 公 共 文 件 对 话 框 控 件 中 所 有 被 选 中 的 文 件 名称。 步 骤 如 下:在Visual Basic 中 开 始 一 个 新 的 工 程, 采 用 缺 省 的 方 法 建立Form1。在Form1 上 添 加 一 个 公 共 对 话 框 控 件, 采 用 缺 省 的 方 法 建立CommonDialog1。在Form1 上 添 加 一 个 文 本 框 控 件, 采 用 缺 省 的 方 法 建立Text1。在Form1 上 添 加 第 二 个 文 本 框 控 件, 采 用 缺 省 的 方 法 建 立Text2。 将 它的MultiLine 属 性 设 置 为True。在Form1 上 添 加 一 个 命 令 按 钮 控 件, 采 用 缺 省 的 方法 建 立Comand1。将 如 下 的 代 码 添 加 到Command1 的 单 击 事 件 中:Private Sub Command1_Click()
      Dim I As Integer
      Dim Y As Integer
      Dim Z As Integer
      Dim FileNames$()
      
      Const OFN_ALLOWMULTISELECT = &H200&
      
      CommonDialog1.filename = ""
      CommonDialog1.Filter = "All Files|*.*"
      CommonDialog1.Flags = OFN_ALLOWMULTISELECT
      CommonDialog1.Action = 1
      
      CommonDialog1.filename = CommonDialog1.filename & Chr(32)
      
      Z = 1
      For I = 1 To Len(CommonDialog1.filename)
        I = InStr(Z, CommonDialog1.filename, Chr(32))
        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
    ---- 按 下F5 运 行 本 程 序, 单 击 命 令 按 钮。 公 共 文 件 对 话 框 控 件 将 被 显示 在 屏 幕 上。 然 后, 从 文 件 列 表 中 选 择 几 个 文 件 名 称, 这 可 以 通 过 在 按 住ctrl 或shift 键的 同 时 单 击 文 件 的 名 称 来 实 现, 如 图1 所 示。 在 选 择 了 适 当 的 文 件 之 后, 单 击 确 定(OK), 则文 件 名 称 将 被 显 示 在 第 二 个 文 本 框 控 件 中, 而 目 录 的 名 称 将 被 显 示 在 第 一 个 文 本 框 控 件中 .