首页 文章

对于每个控件,使用Esc关闭userform而不使用control_KeyPress()命令

提问于
浏览
1

在这个答案中,显示可以通过为每个可以获得焦点的控件设置control_KeyPress()子来使用Esc关闭Excel用户表单 - Close userform with escape button

我已经开始工作,但我有几个菜单,每个菜单都有很多控件 . 我尝试将这个例程放在一个按钮上,但选择/导航回特定按钮并不总是很快 .

我正在寻找一种方法来让它成为我

  • 不必为每个可以获得焦点的控件创建control_KeyPress()subs

  • 或者,可以以不同的方式实现相同的目标(用esc关闭userform)

谢谢!

3 回答

  • 3

    我的想法是在窗体上创建一个命令按钮,将cancel属性设置为true并将width和height设置为0.将以下代码添加到不可见按钮 .

    Private Sub CommandButton1_Click()
        Hide
    End Sub
    

    保持visible属性为true

    enter image description here

  • 0

    创建一个小按钮,例如6 x 6,使其可以看到但不显眼地放置在窗体的一个角落中 . 将它设为小可以阻止显示 Headers ,只留下一个整齐的小方块 .

    创建一个按钮(例如BTXX),然后设置:

    • 取消=真,以便按下退出键"presses"此按钮

    • TabStop = False,以便表格中的标签不会停在按钮上

    • Caption = "Esc"提醒按钮的用途

    在onclick事件中使用:

    Private Sub BTXX_Click()
        Unload Me
    End Sub
    

    在此示例中,通过设置Top = 0和Left = 0,转义按钮在窗体的左上角“隐藏” . (见下图) .

    Userform Properties

  • 0

    如果您已经有一个用于关闭userform的按钮,那么您只需将其cancel属性设置为true即可 . 然后通过按下escape来触发它,保持可点击状态,保持其加速器并保持Tab键顺序 . 您只能有一个取消= True的按钮,属性编辑器会自动处理 .

相关问题