我在我的项目中使用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