我有一个Webbrowser控件显示一些
HTML.
我希望用户能够复制整个文档,但不要做任何其他操作.
我希望用户能够复制整个文档,但不要做任何其他操作.
我将IsWebbrowserContextMenuEnabled和WebbrowserShortcutsEnabled属性设置为false,并且我想处理KeyUp并在用户按Ctrl C时运行一些代码.
我怎样才能做到这一点?
Webbrowser控件不支持键盘事件.
我尝试使用KeyPreview表单的KeyUp事件,但它根本没有触发.
编辑:这是我的解决方案,灵感来自于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",null); Document.ExecCommand("Unselect",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;
原文地址:https://www.jb51.cc/csharp/91943.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。