Элемент управления WebBrowser - предотвращение щелчка правой кнопкой мыши - PullRequest
13 голосов
/ 20 декабря 2010

В моем приложении есть форма, содержащая элемент управления браузера, в котором я отображаю отчет SSRS.Я хотел бы запретить пользователю щелкать правой кнопкой мыши в элементе управления браузера и показывать всплывающее меню.В идеале я бы хотел, чтобы щелчок правой кнопкой мыши ничего не делал.Есть ли способ, которым я могу сделать это?

Ответы [ 5 ]

22 голосов
/ 20 декабря 2010

Вы можете установить IsWebBrowserContextMenuEnabled равным false. Возможно, вы также захотите установить значение AllowWebBrowserDrop равным false, чтобы они не могли перетащить URL-адрес в приложение и загрузить его.

        webBrowser1.IsWebBrowserContextMenuEnabled = false;
        webBrowser1.AllowWebBrowserDrop = false;
3 голосов
/ 13 мая 2014

Для WPF ===>

wbBrowser.ContextMenu.IsEnabled = false;

2 голосов
/ 07 марта 2017

для любого случая, winform или wpf:

     private void WebBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
        {
            ((WebBrowser)sender).InvokeScript("eval", "$(document).contextmenu(function() {    return false;        });");
}
1 голос
/ 20 декабря 2010

Установите для свойства IsWebBrowserContextMenuEnabled значение false.

0 голосов
/ 15 августа 2017

У меня есть работа над решением для моего проекта (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;
}

Надеюсь, полезно.

...