新版【CefSharp】 禁用右键菜单 43.00+

简介: 原文:新版【CefSharp】 禁用右键菜单 43.00+禁用右键菜单其实是很容易的。主就要是实现一个接口 IMenuHandler ,这个接口有一个  OnBeforeContextMenu 的方法,我们在这里让返回一个false,右键菜单就消失了。
原文: 新版【CefSharp】 禁用右键菜单 43.00+

禁用右键菜单其实是很容易的。主就要是实现一个接口 IMenuHandler ,这个接口有一个  OnBeforeContextMenu 的方法,我们在这里让返回一个false,右键菜单就消失了。

internal class MenuHandler : IMenuHandler
    {
        public bool OnBeforeContextMenu(IWebBrowser browser, IContextMenuParams parameters)
        {
            return false;
        }
    }

再将这个对像的实例赋给 ChromiumWebBrowser 对象的 MenuHandler 属性上就OK啦。

var browser = new ChromiumWebBrowser(url);
browser.MenuHandler = new MenuHandler();

 以上的方法适用于老版本的CEFsharp

43.00开始,IMenuHandler已经改名了,直接复制以上代码是不存在的

问了高手,自己琢磨了下 原来 改成了 IContextMenuHandler

而这个接口下面已经有了几个控制菜单的方法,由于本人入门C#不深,只能根据vs提示,提示说接口需要重写,

就根据提示,重写了方法,但是默认都是throw new NotImplementedException();

很明显这样是不行的,这三个方法从字面的理解,控制菜单的出现的应该是OnBeforeContextMenu,有2个,一个是bool,一个就不知道了

仔细看,第二个不需要返回值,里面有个IMenuModel model,无意中在网上看到了高手直接调用cef下用cefsharp的一个方法model.Clear();

胡乱写下了如下代码,还请高手看到之后指正

 

internal class MenuHandler : IContextMenuHandler
{
public bool OnBeforeContextMenu(IWebBrowser browser,IBrowser ibrower,IFrame iframe,IContextMenuParams icontextmenuparams,IMenuModel imenumodel )
{
return false;
}

public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags)
{
return false;
//throw new NotImplementedException();
}

public void OnContextMenuDismissed(IWebBrowser browserControl, IBrowser browser, IFrame frame)
{
// throw new NotImplementedException();
}

void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
{
model.Clear();
}
}

 

目录
相关文章
Vscode设置标签页多行显示
这篇文章提供了在VSCode中设置标签页多行显示的方法,以提高编辑效率。
Vscode设置标签页多行显示
|
7月前
idea 如何禁用通灵义码的提示弹窗
该图片显示了一个弹出框,内容未给出,但问题在于弹出框显得复杂。寻求简化解决方案。
83 0
|
JavaScript
JS禁止打开控制台(鼠标右键)
JS禁止打开控制台(鼠标右键)
334 0
|
JavaScript 前端开发
【js】鼠标禁止右键禁止打开控制台及键盘禁用
前言 大家好,今天和大家分享一下在前端js中禁止鼠标在浏览器中右键,禁止鼠标选中和禁止键盘按键。 这个方法是我在制作一个单词考核系统时所使用到的,因为在考试期间如果打开控制台,通过控制台找到了正确的答案,那么就没有意义了。 所以就需要将控制台禁用,所应用到的也是一些基础的知识,下面我们就一起来看一看吧
|
iOS开发 开发者
iOS开发-新版Xcode在Appdelegate中通过代码控制跳转,不使用系统默认跳转到默认ViewController
iOS开发-新版Xcode在Appdelegate中通过代码控制跳转,不使用系统默认跳转到默认ViewController
275 0
iOS开发-新版Xcode在Appdelegate中通过代码控制跳转,不使用系统默认跳转到默认ViewController
Windows11右键菜单太烦人,简单几步即可恢复旧版完整菜单
Windows 11已经推出一段时间了,相比Windows 10,界面确实美观了不少,同时也有很多新的设计。
Windows11右键菜单太烦人,简单几步即可恢复旧版完整菜单
无插件解除网页禁用右键的限制
无插件解除网页禁用右键的限制
151 0
|
Web App开发
Chrome 插件开发-右键菜单开发实战演示,浏览器页面右键菜单选项设置,插件右键菜单点击插件名跳转主页设置
Chrome 插件开发-右键菜单开发实战演示,浏览器页面右键菜单选项设置,插件右键菜单点击插件名跳转主页设置
1014 0
Chrome 插件开发-右键菜单开发实战演示,浏览器页面右键菜单选项设置,插件右键菜单点击插件名跳转主页设置
|
图形学 Windows
Unity调用Windows对话框保存时另存为弹框
Unity开发VR之Vuforia 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar ...
1267 0