3

这可能是一个简单的问题,但我一直无法找到一个快速的答案。

我有一个WPF应用程序,它有一个托管 GeckoFX 组件的Windows 窗体控件(并不重要)。

我想要做的是捕获 Windows 窗体控件中的按键事件,并为某些特定的组合键获取 WPF 控件的焦点。如果我想从整个 WPF 应用程序窗口(甚至在 Windows 窗体控件内部)捕获事件怎么办?我尝试处理 KeyDown 事件和 PreviewKeyDown 事件,但无济于事。

我想知道的是这是否可能以及应该如何完成。如果需要,我可以发布一些代码。

4

1 回答 1

1

即使在表单上的 KeyDown 也应该适用于非特殊键(如箭头键)。使用 PreviewKeyDown 捕获这些,或使用此解决方案

特别是对于 GeckoWebBrowser,我不得不使用 PreviewKeyDown。另外,我添加了一行,因此它不会在设计模式下中断:

private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) {
  if (DesignMode) return;
  if (!e.IsInputKey && e.Control && e.KeyCode == Keys.S) {
    DoStuff();
    return;
  }
}
于 2010-11-10T15:20:35.723 回答