我想在用户右键点击我的网络浏览器控件时选择所有内容。
我正在开发一个win表单应用程序,并使用Web浏览器显示我的信息,因为我可以使用html来设置单词的样式。
右键单击上下文菜单对我不起作用。它上面的选项与我的应用程序无关。
但是我想保留选择后的上下文菜单,复制,剪切,粘贴选项。
我已经可以选择全部:
getCurrentBrowser().Document.ExecCommand("SelectAll", true, null);
我只想在网络浏览器的右键单击事件中执行此操作?
答案 0 :(得分:5)
处理MouseDown
事件:
webBrowser.Document.MouseDown += new HtmlElementEventHandler(Document_MouseDown);
并确保用户按右键,然后选择全部:
void Document_MouseDown(object sender, HtmlElementEventArgs e)
{
if(e.MouseButtonsPressed == MouseButtons.Right)
{
webBrowser.Document.ExecCommand("SelectAll", true, null);
}
}
答案 1 :(得分:4)
This文章介绍了如何用自己的方式替换Web浏览器的上下文菜单。
或者,如果您在Web浏览器中执行以下Javascript,它将禁用默认的右键单击上下文菜单:
document.oncontextmenu=new Function("return false")
如果您使用的是WinForms而不是WPF,则可以将IsWebBrowserContextMenuEnabled
设置为false以阻止IE上下文菜单,在这种情况下,它将使用您在WebBrowser控件上提供的ContextMenu。
WPF在Web浏览器上没有公开相同的属性,因此可能不那么容易。在这种情况下,您可能必须使用WindowsFormsHost
在WPF中托管WinForms Web浏览器。
答案 2 :(得分:2)
这有效:)
当上下文菜单显示选择全部正在运行时,推出我想要的上下文菜单,复制,粘贴,剪切等。
private void webCompareSQL_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (webCompareSQL.Document != null)
{
webCompareSQL.Document.ContextMenuShowing += DocMouseClick;
}
}
void DocMouseClick(object sender, HtmlElementEventArgs e)
{
webCompareSQL.Document.ExecCommand("SelectAll", true, null);
}
答案 3 :(得分:0)
您需要确保已加载WebBrowser.Document属性。然后您可以注册鼠标事件。
`browser.DocumentCompleted += (s, e) => { browser.Document.MouseMove += (sM, eM) +=> { Debug.WriteLine(eM.ClientMousePosition.X); }; }; `