VB 通用对话框 为什么需要 CancelError

来源:互联网 发布:无印良品 知乎 编辑:程序博客网 时间:2024/06/15 00:21

例如:

Private Sub selectSong()

  On Error GoTo errHandler
  With CommonDialog1
    .CancelError = True
    .InitDir = App.Path
    .Filter = "音乐文件(*.mp3;*.mid;*.wav;*.wma;*.rid)|*.mp3;*.mid;*.wav;*.wma;*.rid"
    .Action = 1 '相当于 CommonDialog1.ShowOpen "打开文件"对话框
  End With
  songName = CommonDialog1.FileName
errHandler:
  If Err > 0 Then '选择了取消
    songName = ""
'好像这样:如果此前没有选择过,取消之后,是空串 _
如果此前选择过,取消之后,仍然返回上次选择的文件名,不会变成空串 _
所以,强制发生‘取消错误’可以每次人工设置空串,符合‘取消’的本意
    Exit Sub
  End If
End Sub
0 0