我有一个用户窗体,它在循环中打开和关闭,只要条件存在。用户可以点击几个按钮来执行操作。问题是用户的不可预测性。其中一个问题是,用户不是单击其中一个按钮,而是单击UserForm顶部的关闭窗口按钮,这会使循环继续进行而不执行任何操作。
---编辑--- 是否有与该按钮相关的事件,我可以执行代码,以便让它执行与表单自身的取消按钮相同的操作。我不需要隐藏或禁用它。
---编辑--- 是否有与该按钮相关的事件,我可以执行代码,以便让它执行与表单自身的取消按钮相同的操作。我不需要隐藏或禁用它。
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
MsgBox "You can't close the dialog like this!"
End If
End Sub
你可以通过将焦点放在按钮上来代替使用 MsgBox:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
Me.Close_Button.SetFocus
End If
End Sub
编辑:我发现了一个更好的选择:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' YOUR CODE HERE (Just copy whatever the close button does)
If CloseMode = vbFormControlMenu Then
Cancel = False
End If
End Sub