在这个答案中,显示可以通过为每个可以获得焦点的控件设置control_KeyPress()子来使用Esc关闭Excel用户表单 - Close userform with escape button
我已经开始工作,但我有几个菜单,每个菜单都有很多控件 . 我尝试将这个例程放在一个按钮上,但选择/导航回特定按钮并不总是很快 .
我正在寻找一种方法来让它成为我
-
不必为每个可以获得焦点的控件创建control_KeyPress()subs
-
或者,可以以不同的方式实现相同的目标(用esc关闭userform)
谢谢!
3 回答
我的想法是在窗体上创建一个命令按钮,将cancel属性设置为true并将width和height设置为0.将以下代码添加到不可见按钮 .
保持visible属性为true
创建一个小按钮,例如6 x 6,使其可以看到但不显眼地放置在窗体的一个角落中 . 将它设为小可以阻止显示 Headers ,只留下一个整齐的小方块 .
创建一个按钮(例如BTXX),然后设置:
取消=真,以便按下退出键"presses"此按钮
TabStop = False,以便表格中的标签不会停在按钮上
Caption = "Esc"提醒按钮的用途
在onclick事件中使用:
在此示例中,通过设置Top = 0和Left = 0,转义按钮在窗体的左上角“隐藏” . (见下图) .
Userform Properties
如果您已经有一个用于关闭userform的按钮,那么您只需将其cancel属性设置为true即可 . 然后通过按下escape来触发它,保持可点击状态,保持其加速器并保持Tab键顺序 . 您只能有一个取消= True的按钮,属性编辑器会自动处理 .