input密钥模拟点击不起作用的checkbox

我已经复制并略微修改了这篇文章底部的代码,以允许在我创build的工作表窗体上的窗体控件之间切换。 这里是关于KeyCode = vbKeyEnter的段:

Select Case KeyCode Case vbKeyTab Dim Backward As Boolean Backward = (Shift And fmShiftMask) Call MoveFocus(Cntrl:=Cntrl, TabIndex:=TabIndex, Backward:=Backward) Case vbKeyEnter Select Case TypeName(Cntrl) Case TxtBoxType If Not (Cntrl.EnterKeyBehavior And Cntrl.MultiLine) Then Call MoveFocus(Cntrl:=Cntrl, TabIndex:=TabIndex) End If Case Else On Error Resume Next Application.Run Sheet1.CodeName & "." & Cntrl.name & "_Click" On Error GoTo 0 End Select End Select 

代码工作正常前进和后退之间的控制。 但是,使用回车键检查和取消选中checkbox控件时遇到问题。 它适用于选项button,但不起作用checkbox。 如果我将CheckBox1.Value = True添加到CheckBox1_Click事件中,它将检查它是否正确,但是自然不会允许它取消选中false。 我试着添加下面的IF语句,根据当前值将其设置为true或false,但是没有任何反应。

 If CheckBox1.Value = True Then CheckBox1.Value = False Else CheckBox1.Value = True End If 

另一个注意事项:当我按下回车键时,窗体控件没有任何反应,它将活动单元格移动到活动列中。 有什么build议么?

这可能或不可能是编程问题的答案; 我会让选民决定。
Q.input密钥模拟点击不起作用的checkbox

你为什么要做这样的事情? 你花费时间和精力故意“破坏”一个工作系统。 空格键长久以来就是用于打开和closurescheckbox的可接受按键, TabShift + Tab用于表单控件之间的导航,而Enter键OK的默认设置。

“工作系统”是指整个Mac / Windows / Linux GUI系统和数百万经过长期定义的标准实践培训的人员。 你可以把鼠标从任何有能力的上class族带走,他们的生产力不会受到影响。 他们可以通过系统和应用程序进行导航以执行其工作,因为系统中的所有内容(从设置video分辨率到打字工人的计时卡数据到自定义格式)的工作方式都是相同的

拿一个Windows用户,并将他们粘在他们的第一台Mac。 他们可以使用程序并完成工作,因为绝大多数操作(特别是应用程序的基本操作)是相同的。 拿一个Mac用户,把它们放在Linux机器前面,你会得到相同的结果。 机器的基本日常操作和程序是一样的。

如果你打算build立一个专门的系统,把所有的训练,实践和经验都扔到窗外,那么任何寻找工作的申请者都可以find一份充满办公室经历的简历。

使用空格键打开和closurescheckbox早于Windows 3.0。 build立一个更好的捕鼠器和重新创造轮子是有区别的。


¹ 如果您不认为维护GUI标准是需要努力的,请考虑Office 2007function区创build的反弹。 催生了一个致力于生产带回Office 2003function的附加组件的整个子行业。