我在我的項目中使用CefSharp.WinForms.ChromiumWebBrowser
v45。當我右鍵點擊進入網頁瀏覽器,默認的上下文菜單會顯示:如何隱藏CefSharp.WinForms.ChromiumWebBrowser右鍵單擊上下文菜單?
但我不想顯示任何東西。我該怎麼辦?
我在我的項目中使用CefSharp.WinForms.ChromiumWebBrowser
v45。當我右鍵點擊進入網頁瀏覽器,默認的上下文菜單會顯示:如何隱藏CefSharp.WinForms.ChromiumWebBrowser右鍵單擊上下文菜單?
但我不想顯示任何東西。我該怎麼辦?
如果您實施IContextMenuHandler
,則可以控制ContextMenu
。下面的兩個鏈接演示了需要什麼(以及一些其他有用的功能)。
一般來說,CefSharp.WinForms.Example
項目演示了不少功能,檢查出來,如果你需要其他的功能。
非常感謝! – hubpan
這是像我這樣懶惰的人的實現代碼。它是基於CefSharp v53.0.0
public class CustomMenuHandler : CefSharp.IContextMenuHandler
{
public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
{
model.Clear();
}
public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags)
{
return false;
}
public void OnContextMenuDismissed(IWebBrowser browserControl, IBrowser browser, IFrame frame)
{
}
public bool RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback)
{
return false;
}
}
如何使用它
ChromiumWebBrowser browser = new ChromiumWebBrowser();
browser.MenuHandler = new CustomMenuHandler();
偉大的想法 - 我想提高該 1.根據需要創建新的CS文件:CustomMenuHandler.cs 2.寫完整CustomMenuHandler 3.保存它! 4. chromeBrowser.menuHandler = new CustomMenuHandler(); 仍然與v53.0.1一起工作耶! – SourceSkyBoxer
webBrowser.PreviewMouseRightButtonDown += HandleWebBrowserPreviewMouseRightButton;
webBrowser.PreviewMouseRightButtonUp += HandleWebBrowserPreviewMouseRightButton;
private void HandleWebBrowserPreviewMouseRightButton(object sender, MouseButtonEventArgs e) {
// Preventing right-click until https://github.com/cefsharp/CefSharp/issues/1915 is fixed
e.Handled = true;
}
請出示了一些研究工作,並告訴我們你已經想到 –
我希望我的軟件用戶沒有知道這個上下文菜單是否存在。但是當他們在webbrowser上選擇了一些文本,並且右鍵單擊時,他們可以使用「複製」上下文菜單。我只禁用頁面默認的右鍵菜單。 – hubpan