WebBrowser控件 - 防止右键单击

时间:2010-12-20 20:30:32

标签: c# reporting-services browser webbrowser-control

在我的应用程序中,我有一个包含浏览器控件的表单,我在其中显示SSRS报告。我想阻止用户右键单击浏览器控件并显示弹出菜单。理想情况下,我希望右键单击不执行任何操作。有没有办法可以实现这个目标?

5 个答案:

答案 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;
}

希望有所帮助。