VB通用对话框filter属性

Private Sub Command1_Click()
C1.ShowOpen
C1.DialogTitle = "打开文件"
C1.Filter = "all files|*.*|(*.exe)|*.exe|(*.txt)|*.exe"
C1.Flags = 4
C1.FilterIndex = 2
End Sub

我在VB界面直接在属性窗口中的filter属性 输入all files|*.*|(*.exe)|*.exe|(*.txt)|*.exe就行了
但是在代码里面就不行这个是为什么

Filter 属性(公共对话框),返回或设置在对话框的类型列表框中所显示的过滤器。

说明

过滤器指定在对话框的文件列表框中显示的文件的类型。例如,选择过滤器为 *.txt,就显示所有的文本文件。

使用该属性可当对话框显示时提供一个过滤器列表,用它可以进行选择。

使用管道 ( | ) 符号 (ASCII 124) 将 fifter 与 description 的值隔开。管道符号的前后都不要加空格,因为这些空格会被与 fifter 与 description
的值一起显示。

下列代码给出一个过滤器的例子,该过滤器允许选择文本文件或含有位图和图标的图形文件:

Text (*.txt)|*.txt|Pictures (*.bmp;*.ico)|*.bmp;*.ico

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
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-13
你的语句顺序书写问题
先设置好控件的属性,再显示对话框的话就不会有问题了。
把C1.ShowOpen放到最后就可以了。

比如:
C1.DialogTitle = "打开文件"
C1.Filter = "all files|*.*|(*.exe)|*.exe|(*.txt)|*.exe"
C1.Flags = 4
C1.FilterIndex = 2
C1.ShowOpen '最后再调用ShowOpen上面的属性设置才有效,否则只显示调用ShowOpen前的设置属性本回答被提问者和网友采纳
相似回答