【发布时间】:2015-04-07 13:45:49
【问题描述】:
大家好
我正在使用 WxWidgets 2.8。我使用文本框创建了一个类似网格的界面。我想更改文本框中的值,只需使用箭头键导航到它们。
我已经设置了一个放置文本框的面板,然后添加了一个 onkeydown 事件,当按下某个键时它应该只显示一条消息。这不起作用。
我已经尝试过 oncharevent,甚至将事件添加到 wxFrame。
为什么抓不到关键事件?
【问题讨论】:
大家好
我正在使用 WxWidgets 2.8。我使用文本框创建了一个类似网格的界面。我想更改文本框中的值,只需使用箭头键导航到它们。
我已经设置了一个放置文本框的面板,然后添加了一个 onkeydown 事件,当按下某个键时它应该只显示一条消息。这不起作用。
我已经尝试过 oncharevent,甚至将事件添加到 wxFrame。
为什么抓不到关键事件?
【问题讨论】:
只有当前获得焦点的窗口才会获得关键事件,如果框架有任何子项(例如文本控件),则框架将永远不会获得焦点。
还请考虑将 wxWidgets 3.0 用于任何新代码,特别是它提供了Bind(),如果您想要这样做,可以方便地在一个地方处理来自所有控件的关键事件。
【讨论】:
Connect() 或 PushEventHandler()。至于键盘事件,这是您在绝大多数情况下所期望的。