【发布时间】:2011-04-03 11:56:46
【问题描述】:
我将继续在我的简单图形程序(使用 C#)中编写某种键盘导航。我又遇到了麻烦。
我的问题是我想处理键盘输入以移动图层。用鼠标移动图层已经很有效了,但是控件没有获得焦点(KeyUp/KeyDown/KeyPress 和 GotFocus/LostFocus 都没有被触发)。 由于我的类派生自 Panel(并覆盖了几个事件),我也覆盖了上面提到的事件,但我无法成功触发这些事件。
我想我可以使用 Keyboard.GetState() 或 ProcessCmdWnd 之类的东西来实现键盘响应。但是:我仍然必须能够判断控件何时获得焦点。
是否有一种或多或少优雅的方式将此功能添加到用户控件(基于 Panel)?
我在这里检查了很多线程,我可能会使用this approach 进行键盘输入。然而,焦点问题仍然存在。
非常感谢您提前提供信息!
伊戈尔。
p.s.:我正在使用 VS2008 在 C# .NET v3.5 中编程。这是一个 Windows.Forms 应用程序,不是 WPF。
【问题讨论】:
标签: c# winforms keyboard focus panel