【发布时间】:2013-04-18 18:33:09
【问题描述】:
据我所知,这些是唯一在按钮获得焦点时做出反应的键。
按下 Enter 会立即“点击”按钮,即使您按住它也是如此。 (所以“点击”发生在 KeyDown 上)。
按 Space 更像是普通的鼠标点击;按住它不会激活 Click 事件,但一旦释放它就会激活。 (所以“点击”发生在 KeyUp 或 KeyPressed 上。)
为什么不一样?我想要一篇关于这个主题的好文章,或者只是一个关于为什么这两个键有不同行为的合乎逻辑的解释。肯定有解释!
【问题讨论】:
-
Enter 是接受,Esc 是拒绝,空格键是按下焦点按钮。因此,如果默认按钮是 OK,当您按下 Enter 时,您实际上接受了更改而不是按下按钮。
-
MessageBox的情况是错误的。 Enter 和 Space 都单击焦点按钮,但具有上述行为。 -
在消息框上,确定按钮具有焦点,所以正如我所说。重点是点击空格键,回车是接受消息框,esc是拒绝并关闭。
-
您忘记了
MessageBox的按钮,例如确定和取消、是和否。当您按下回车键时,带有焦点的按钮(假设是 CANCEL)将被激活,从而取消并关闭。 -
您可以通过以下方式将您的选择按钮移动到另一个按钮:AnotherButton.Select();