'使用CancelError判断吧 Private Sub Command1_Click() With CommonDialog1 .CancelError = True On Error GoTo ErrOpen .ShowOpen End With Exit Sub ErrOpen: If Err.Number = cdlCancel Then MsgBox "Cancel button clicked" End Sub 参见MSDN说明: ————————————————————————
Private Sub Form_Load() On Error GoTo noFile CommonDialog1.CancelError = True CommonDialog1.ShowOpen
'...... Exit Sub noFile: If Err.Number = 32755 Then MsgBox "按了取消键!" Exit Sub Else MsgBox "Unknown error in openning file" & CommonDialog1.FileName End If End Sub
Private Sub Command1_Click()
With CommonDialog1
.CancelError = True
On Error GoTo ErrOpen
.ShowOpen
End With
Exit Sub
ErrOpen:
If Err.Number = cdlCancel Then MsgBox "Cancel button clicked"
End Sub
参见MSDN说明:
————————————————————————
CancelError 属性
返回或设置一个值,该值指示当选取“取消”按钮时是否出错。语法object.CancelError [= boolean]CancelError 属性语法有下列部分:部分 描述
object 对象表达式,其值是“应用于”列表中的对象。
boolean 布尔表达式,如“设置值”中所描述,用以指示是否出错。
设置值用于 boolean 的设置有:设置值 描述
True 有错。
False (缺省值)没错。
说明当该属性设置为 True 时,无论何时选取“取消”按钮,均产生 32755 (cdlCancel) 号错误。数据类型Boolean
On Error GoTo noFile
CommonDialog1.CancelError = True
CommonDialog1.ShowOpen
'......
Exit Sub
noFile:
If Err.Number = 32755 Then
MsgBox "按了取消键!"
Exit Sub
Else
MsgBox "Unknown error in openning file" & CommonDialog1.FileName
End If
End Sub