如何隐藏CefSharp.WinForms.ChromiumWebBrowser右键单击上下文菜单?
问题描述:
我在项目中使用的是 CefSharp.WinForms.ChromiumWebBrowser
v45。当我右键单击Web浏览器时,将显示默认的上下文菜单:
I'm using CefSharp.WinForms.ChromiumWebBrowser
v45 in my project. When I right click into the web browser, the default context menu will show up:
但是我不想显示任何东西。我应该怎么办?
But I don't want to show anything. What should I do?
答
这是像我这样的懒惰人的实现。它基于CefSharp v53.0.0
This is the implementation for lazy people like me. It is based on 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();