Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms onClick事件和';空格键';按钮上的按键事件_Forms_Vba_Ms Access_Onclick_Ms Access 2010 - Fatal编程技术网

Forms onClick事件和';空格键';按钮上的按键事件

Forms onClick事件和';空格键';按钮上的按键事件,forms,vba,ms-access,onclick,ms-access-2010,Forms,Vba,Ms Access,Onclick,Ms Access 2010,我有一个用MS Access制作的表单,其中包含一个按钮。 我在按钮的onClick事件上显示一个消息框。但是,用户也可以使用Tab键导航到该按钮,然后按空格键,并期望发生与onClick事件相同的行为 有没有办法有效地实施这一点?或者,唯一的方法是从两个地方调用相同的子例程—一个处理onClick事件,另一个处理“Spacebar”按键事件。您不应该将消息框的结果附加到另一个onClick,而应该在现有子例程中获得结果并从中开始工作。例如: Answer = MsgBox("Do you wa

我有一个用MS Access制作的表单,其中包含一个按钮。 我在按钮的onClick事件上显示一个消息框。但是,用户也可以使用Tab键导航到该按钮,然后按空格键,并期望发生与onClick事件相同的行为


有没有办法有效地实施这一点?或者,唯一的方法是从两个地方调用相同的子例程—一个处理onClick事件,另一个处理“Spacebar”按键事件。

您不应该将消息框的结果附加到另一个onClick,而应该在现有子例程中获得结果并从中开始工作。例如:

Answer = MsgBox("Do you want to continue ?", vbYesNo)
If Answer = vbYes Then
  Code for YES
Else
  Code for NO
EndIf

了解更多关于messagebox和代码的功能会有所帮助。

有很多解决方案:

  • 禁用按键事件,只允许点击事件
  • 允许OnKey事件,但调用处理
    OnClick
  • 删除
    OnClick
    事件代码,因为用户可以从键盘上按下按钮,或者通过单击鼠标,在这两种情况下,都会触发
    button\u click
    事件,因此将处理代码放在
    button\u click
    事件中更安全

  • 用Tab键切换到命令按钮(使其具有焦点),然后按Enter键或空格键与用鼠标单击命令按钮的效果相同。。。按钮的单击事件将触发。您的Access应用程序是否表现出不同的行为,或者我只是误解了您的问题?正如@HansUp所说,您描述的行为应该在没有进一步代码的情况下工作。如果当焦点在OnClick事件上并且按下空格键时,没有触发OnClick事件,那么它要么不是一个正确的按钮控件,要么是其他问题。