gpt4 book ai didi

c# - 基本的 WinForm KeyDown 事件处理

转载 作者:行者123 更新时间:2023-11-30 21:18:26 25 4
gpt4 key购买 nike

我正在使用 WinForms。我为主窗体的 KeyDown 事件创建了一个事件处理程序,从而调用按钮的 Click 事件处理程序。

调用的 Click 事件处理程序取决于按下的特定键。如果用户单击按钮而不是使用该键,然后随后尝试使用该键,则该键(例如向下箭头)充当制表符循环,在表单上的每个按钮控件之间改变焦点(而不是执行按键处理程序)。

有什么想法吗?

最佳答案

问题是,按钮在单击时具有焦点,因此随后的按键操作不会被表单本身捕捉到,而是由按钮捕捉到。在按钮的点击事件处理程序中,聚焦表单:

this.Focus();

这样,焦点将恢复到表单,因此表单将监听按键事件。

编辑

正如您所发现的那样,真正的问题在于箭头键未被视为输入键。要解决此问题,您需要创建一个新类来继承您要使用的任何控件。然后,您覆盖 IsInputKey 方法以将箭头键视为输入键。检查此链接:http://bytes.com/topic/c-sharp/answers/517530-trapping-arrow-keys-usercontrol .这篇文章也很有用:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.isinputkey.aspx .

关于c# - 基本的 WinForm KeyDown 事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4253412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com