В моем приложении у меня есть форма, содержащая элемент управления браузера, в котором отображается отчет SSRS. Я хотел бы запретить пользователю щелкнуть правой кнопкой мыши в элементе управления браузера и отобразить всплывающее меню. В идеале я бы хотел щелкнуть правой кнопкой мыши, чтобы ничего не делать. Есть ли способ, которым я могу это сделать?
Управление веб-браузером - предотвращение правостороннего щелчка
Ответ 1
Вы можете установить значение IsWebBrowserContextMenuEnabled равным false. Вероятно, вы также захотите установить AllowWebBrowserDrop равным false, чтобы они не могли перетащить URL-адрес в приложение и загрузить его.
webBrowser1.IsWebBrowserContextMenuEnabled = false;
webBrowser1.AllowWebBrowserDrop = false;
Ответ 2
Для WPF === >
wbBrowser.ContextMenu.IsEnabled = false;
Ответ 3
для любого случая, winform или wpf:
private void WebBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
((WebBrowser)sender).InvokeScript("eval", "$(document).contextmenu(function() { return false; });");
}
Ответ 4
Задайте для свойства IsWebBrowserContextMenuEnabled
значение false
.
Ответ 5
У меня есть решение для моего проекта (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;
}
Надеюсь на помощь.