【问题标题】:Is there a way to hijack the keyboard shortcuts that are handled by the System.Windows.Forms.WebBrowser control?有没有办法劫持由 System.Windows.Forms.WebBrowser 控件处理的键盘快捷键?
【发布时间】:2012-02-14 10:24:03
【问题描述】:

我有一个 WebBrowser 控件,用于在我们的应用程序中生成格式化的 HTML 代码。但是,当 WebBrowserShortcutsEnabled 设置为 true 时,控件会处理 Copy/Cut/Paste/SelectAll 等键盘快捷键。这些操作都可以由控件自己处理,但是有一些父控件使用的Ctrl+S等操作应该用来Save/Save All等。当WebBrowser控件有焦点时,这些其他键盘快捷键不会传递给父控件。有没有办法以编程方式劫持这些键盘事件?

我尝试使用 PreviewKeyPress 事件将单个击键传递给父控件,但我很难传递多个击键。有什么想法吗?

【问题讨论】:

  • 覆盖表单的 ProcessCmdKey() 方法以识别快捷键。

标签: c# .net winforms webbrowser-control


【解决方案1】:

你可以尝试覆盖 WndProc

protected override void WndProc(ref Message m)
{
    //Check Msg and WParam for your combination...

    base.WndProc(ref m);
}

否则,这个answer 展示了如何使用SetWindowsHookEx 捕获击键,如果所有其他方法都失败了,它应该可以让你到达那里。

【讨论】:

    猜你喜欢
    • 2012-07-03
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 2021-07-19
    相关资源
    最近更新 更多