在vb中如何设计一个打开对话框并能打开文件呢?

在vb中如何设计一个打开对话框并能打开文件呢?... 在vb中如何设计一个打开对话框并能打开文件呢? 展开
 我来答
149005501
推荐于2018-03-02 · TA获得超过8.6万个赞
知道顶级答主
回答量:7.9万
采纳率:90%
帮助的人:1.3亿
展开全部

CommonDialog 控件(“打开”、“另存为”对话框)

通过使用 CommonDialog 控件的 ShowOpen 和 ShowSave 
方法可显示“打开”和“另存为”对话框。

两个对话框均可用以指定驱动器,目录,文件扩展名和文件名。除对话的标题不同外,另存为对话外观上与打开对话相似。

在运行时,当用户选择一个文件“关闭”对话框时,FileName 属性既为选定的文件名。

可以设置 Filter 属性,这样对话就只显示某种文件类型,如文本文件。Flags 
属性可用来改变对话的元素,当诸如覆盖文件之类的动作发生时,还可用来提示用户。

CommonDialog 
控件(“打开”、“另存为”对话框)示例


下例显示“打开”对话框然后在信息框中显示所选的文件名:

Private Sub Command1_Click()
    ' 设置“CancelError”为 True
    CommonDialog1.CancelError = True
    On Error GoTo ErrHandler
    ' 设置标志
    CommonDialog1.Flags = cdlOFNHideReadOnly
    ' 设置过滤器
    CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & _
    "(*.txt)|*.txt|Batch Files (*.bat)|*.bat"
    ' 指定缺省的过滤器
    CommonDialog1.FilterIndex = 2
    ' 显示“打开”对话框
    CommonDialog1.ShowOpen
    ' 显示选定文件的名字
    MsgBox CommonDialog1.FileName
    Exit Sub
    
ErrHandler:
    ' 用户按了“取消”按钮
    Exit Sub
End Sub

井钰gQ
2007-12-20 · TA获得超过2480个赞
知道大有可为答主
回答量:1303
采纳率:0%
帮助的人:1491万
展开全部
如果自己编写,就显得又点麻烦,VB自己提供了这样的控件了
你点“工程”、“部件”,然后在“部件”对话框中选择
“Microsoft Common Dialog Control 6.0”,将其添加到工具箱中
然后就如楼上的所说,可以使用
Commondialog1.action=1
或者commondialog1.showopen
把上面的代码写入你的单击事件中即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七月风1257
2007-12-20 · TA获得超过188个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:0
展开全部
窗体上放一个按钮:
Private Sub Command1_Click()
Dim filepath As String
filepath = openfile(Me)
If filepath <> "" Then
Call ShellExecute(Me.hwnd, "Open", filepath, "", App.Path, 1)
End If
End Sub

模块代码:

'**************选择文件声明
Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" ( _
pOpenfilename As OPENFILENAME) As Long

Public Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
'*************************************打开文件声明
Public Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) _
As Long

'文件选择函数
Function openfile(ByVal Fname As Form) As String
Dim strFile As String
Dim OFName As OPENFILENAME
OFName.lStructSize = Len(OFName)
OFName.hwndOwner = Fname.hwnd
OFName.hInstance = App.hInstance
OFName.lpstrFilter = "所有文件(*.*)" & Chr$(0) & "*.*"
OFName.lpstrFile = Space$(254)
OFName.nMaxFile = 255
OFName.lpstrFileTitle = Space$(254)
OFName.nMaxFileTitle = 255
OFName.lpstrTitle = "指定珊瑚虫外挂主程序CoralQQ.exe"
OFName.flags = 0
If GetOpenFileName(OFName) Then
openfile = Trim(OFName.lpstrFile)
End If
End Function
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
微标防伪防窜货标签定制

2007-12-20 · TA获得超过2016个赞
知道大有可为答主
回答量:1512
采纳率:87%
帮助的人:549万
展开全部
'添加窗体Form1,按钮Command1,然后添加如下代码:
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOPENFILENAME As OPENFILENAME) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const OFN_HIDEREADONLY = &H4
Private Const OFN_PATHMUSTEXIST = &H800
Private Const OFN_FILEMUSTEXIST = &H1000
Private Const OFN_SHAREAWARE = &H4000

Private Type OPENFILENAME
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
End Type

Private Sub Command1_Click()
    Dim sFilter, sFilename As String
    sFilter = "可执行文件(*.exe;*.com;*.bat;*.cmd)" & Chr$(0) & _
                "*.exe;*.com;*.bat;*.cmd" & Chr$(0) & _
            "所有文件(*.*)" & Chr$(0) & _
                "*.*" & Chr$(0)
    sFilename = browseFile(Me.hwnd, "选择程序", sFilter)
    
    If sFilename = "" Then Exit Sub
    ShellExecute hwnd, "open", sFilename, vbNullString, vbNullString, 1
End Sub

Private Function browseFile(hwnd As Long, strTitle As String, strFilter) As String
    On Error GoTo mnuFileOpenDialog_Click_Error
    Dim file As OPENFILENAME, sFile As String, lResult As Long, iDelim As Integer
     
    file.lStructSize = Len(file)
    file.hwndOwner = hwnd
    file.flags = OFN_HIDEREADONLY + OFN_PATHMUSTEXIST + OFN_FILEMUSTEXIST + OFN_SHAREAWARE
    file.lpstrFile = "" & String$(250, 0)
    file.nMaxFile = 255
    file.lpstrFileTitle = String$(255, 0)
    file.nMaxFileTitle = 255
    'file.lpstrInitialDir = Environ$("WinDir")
    file.lpstrFilter = strFilter
    file.nFilterIndex = 1
    file.lpstrTitle = strTitle

    lResult = GetOpenFileName(file)
    If lResult <> 0 Then
        iDelim = InStr(file.lpstrFile, Chr$(0))
        If iDelim > 0 Then
            sFile = Left$(file.lpstrFile, iDelim - 1)
        End If
    End If
    browseFile = sFile
    
mnuFileOpenDialog_Click_Exit:
    Exit Function
mnuFileOpenDialog_Click_Error:
    MsgBox "Error: " & Format$(Err) & " " & Error$, , "mnuFileOpenDialog_Click"
    Resume mnuFileOpenDialog_Click_Exit
End Function
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2007-12-20 · TA获得超过923个赞
知道小有建树答主
回答量:478
采纳率:0%
帮助的人:419万
展开全部
加如comdialog控件
comaialog1.showopen
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式