在我的应用程序中,我有一个包含浏览器控件的表单,我在其中显示SSRS报告。我想阻止用户右键单击浏览器控件并显示弹出菜单。理想情况下,我希望右键单击不执行任何操作。有没有办法可以实现这个目标?
答案 0 :(得分:22)
您可以将IsWebBrowserContextMenuEnabled设置为false。您可能还希望将AllowWebBrowserDrop设置为等于false,这样他们就无法将url拖到应用程序中并加载它。
webBrowser1.IsWebBrowserContextMenuEnabled = false;
webBrowser1.AllowWebBrowserDrop = false;
答案 1 :(得分:3)
对于WPF ===>
wbBrowser.ContextMenu.IsEnabled = false;
答案 2 :(得分:2)
对于任何情况,winform或wpf:
private void WebBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
((WebBrowser)sender).InvokeScript("eval", "$(document).contextmenu(function() { return false; });");
}
答案 3 :(得分:1)
将IsWebBrowserContextMenuEnabled
属性设置为false
。
答案 4 :(得分:0)
我的项目解决方案(WPF - MVVM):
重要的添加引用:Microsoft.mshtml
实施事件:webBrowser.LoadCompleted + = webBrowser_LoadCompleted;
using mshtml;
private void webBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
object doc = webBrowser.Document;
HTMLDocumentEvents2_Event evn2 = doc as HTMLDocumentEvents2_Event;
HTMLDocumentEvents_Event evn = doc as HTMLDocumentEvents_Event;
evn.oncontextmenu += new HTMLDocumentEvents_oncontextmenuEventHandler(Evn_oncontextmenu);
evn2.oncontextmenu += new HTMLDocumentEvents2_oncontextmenuEventHandler(Evn2_oncontextmenu);
}
private bool Evn2_oncontextmenu(IHTMLEventObj pEvtObj)
{
return false;
}
private bool Evn_oncontextmenu()
{
return false;
}
希望有所帮助。