2016-08-02 27 views
1

我想以编程方式确定用户是否在Visual Basic中使用表单时单击了右上方的“x”按钮。确定用户何时单击x-VBA

我曾尝试:

Private Sub nameOfForm_Exit() 
    'code goes here 
End Sub 

而一直未果。任何帮助将非常感激。

+0

QueryClose事件:https://msdn.microsoft.com/en-us/library/office/gg278635.aspx(甚至会告诉您用户是否按下了X或者窗体是以编程方式关闭还是...等等,以及允许您防止表单关闭,如果您愿意的话) – Mikegrann

回答

5
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 
    MsgBox "Good bye" 

    '/ To prevent user from closing the form 
    '/ Set cancel to True 

    Cancel = True 

    MsgBox "You can't close me!" 
End Sub 
3

enter image description here 你不能创造自己的术语如 “退出”。你必须把它们放在上面的组合框中(称为事件)。由于您的事件与用户窗体本身有关,因此您需要在左侧组合框中选择用户窗体。您还将看到您的用户窗体的所有控件,它们都有一组事件。

如前所述,QueryClose将引用右上角的红色X.您也有Deactivate,这将发生在UserForm失去焦点时(如果它是ModeLess,意味着用户可以单击该表单后面的表单而不关闭它,这将触发Deactivate)和Terminate,这发生在用户窗体关闭后使用QueryClose 。

相关问题