据我所知,这些是唯一在按钮具有焦点时使用react的键。
按下 Enter 会立即“点击”按钮,即使您一直按住该键也是如此。 (因此“点击”发生在 KeyDown 上)。
按下 Space 更像是普通的鼠标点击;按住它不会激活 Click 事件,但一旦松开它就会激活。 (因此“点击”发生在 KeyUp 或 KeyPressed 上。)
为什么不同?我想要一篇关于该主题的好文章,或者只是关于为什么这两个键具有不同行为的逻辑解释。肯定有解释!
最佳答案
我找不到任何解释这个问题的文章,这是一个非常好的问题。我个人认为这是出于功能目的
Enter Key 经典的 AcceptButton
就像一个 FullClick
(Click/ClickReleased),这就是为什么如果你按住它你会产生这样的效果点击多次。
Space 然而是一个SingleClick
(在您释放键之前不会释放点击)因此它可以完成只需要 Click
的任务没有 ClickRelease
和只需要选择一个控件来激活它的操作。像 CheckBox
或 RadioButtons
不能用 Enter 激活但可以用 Space 激活,比如如果你点击它。
总而言之,Space 将是官方的 MouseClick
,因为它在按下或释放时具有与 MouseClick
相同的效果。 Enter 将是一种单击完全单击 的快捷方式。当然,所有这些都是为了给键盘本身提供更多可能性。
关于c# - 为什么 Enter 和 Space 键对按钮的行为不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16090578/