gpt4 book ai didi

c# - Web 浏览器键盘快捷键

转载 作者:太空狗 更新时间:2023-10-29 17:42:45 25 4
gpt4 key购买 nike

我有一个显示一些 HTML 的 WebBrowser 控件。
我希望用户能够复制整个文档,但不能执行任何其他操作。

我已将 IsWebBrowserContextMenuEnabledWebBrowserShortcutsEnabled 属性设置为 false,我想处理 KeyUp 和当用户按下 Ctrl+C 时运行一些代码。

我该怎么做?
WebBrowser 控件不支持键盘事件。
我尝试将表单的 KeyUp 事件与 KeyPreview 一起使用,但它根本没有触发。

编辑:这是我的解决方案,灵感来自 Jerb 的回答。

class CopyableWebBrowser : WebBrowser {
public override bool PreProcessMessage(ref Message msg) {
if (msg.Msg == 0x101 //WM_KEYUP
&& msg.WParam.ToInt32() == (int)Keys.C && ModifierKeys == Keys.Control) {
DoCopy();
return true;
}
return base.PreProcessMessage(ref msg);
}
void DoCopy() {
Document.ExecCommand("SelectAll", false, null);
Document.ExecCommand("Copy", false, null);
Document.ExecCommand("Unselect", false, null);
}
}

最佳答案

你也可以试试这个方法。把它放在你的主窗体区域,它应该捕获所有的键盘命令。我用它来为动态创建的选项卡添加键盘快捷键。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
switch (keyData)
{
case Keys.Control|Keys.Tab:
NextTab();
return true;
case Keys.Control|Keys.Shift|Keys.Tab:
PreviousTab();
return true;
case Keys.Control|Keys.N:
CreateConnection(null);
return true;
}
return false;

关于c# - Web 浏览器键盘快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1980515/

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