新版【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();
}
}
新版【CefSharp】 禁用右键菜单 43.00+的更多相关文章
- 【CefSharp】 禁用右键菜单 与 控制弹出窗口的方式(限版本39.0.0.1)
这周没什么时间,一开始就在忙一些CefSharp的事情,Win10的研究就放了下来,CefSharp的资料挺少的,但好在是开源的,可以我们便宜的折腾.因为两个的内容都不多,我就合成一篇文章啦. 这还里 ...
- js 禁用右键菜单、拖拽、选中、复制
//禁用拖拽 document.ondragstart = function () { return false; }; /** * 禁用右键菜单 */ document.oncontextmenu ...
- CefSharp 屏蔽右键菜单
既然是C#+web混用模式,当然就需要把web的右键操作屏蔽掉咯.废话不说了直接上代码. internal class MenuHandler : IMenuHandler { public bool ...
- ChromiumWebBrowser 禁用右键菜单
/// <summary> /// 禁用嵌套页面的右键菜单 /// </summary> public class MenuHandler : IContex ...
- js禁用右键菜单、选中、复制、剪切、粘贴
//屏蔽右键菜单 document.oncontextmenu = function (event) { if (window.event) { event = window.event; } try ...
- WPF 之 左键弹出操作菜单,并禁用右键菜单
在目前的WPF版本中,很多的控件都有一个ContextMenu的属性,可以设置组件的右键菜单,这点确实是很方便,但是有些时候我们可能会需要当单击鼠标左键才弹出这个ContextMenu,而不是单击鼠标 ...
- jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等
禁用鼠标右键菜单栏 $("body").bind("contextmenu", function(event) { return false; }); 禁用快捷 ...
- ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成
ASP.NET Boilerplate 学习 1.在http://www.aspnetboilerplate.com/Templates 网站下载ABP模版 2.解压后打开解决方案,解决方案目录: ...
- WebBrowser控件禁用超链接转向、脚本错误提示、默认右键菜单和快捷键
原文:WebBrowser控件禁用超链接转向.脚本错误提示.默认右键菜单和快捷键 WebBrowser控件禁用超链接转向.脚本错误提示.默认右键菜单和快捷键从 VS2005开始,VS自带的 WebBr ...
随机推荐
- 今天竟然有人模仿我的QQ号进行骗钱
今天下午,CoderGeek同学告诉我,有个叫"小雷FansUnion"的QQ正在找他要钱,他直接和我这个正宗的"小雷FansUnion"探听虚实.这时才发现, ...
- HOOK API入门之Hook自己程序的MessageBoxW(简单入门)
说到HOOK,我看了很多的资料和教程,无奈就是学不会HOOK,不懂是我的理解能力差,还是你们说的 不够明白,直到我看了以下这篇文章,终于学会了HOOK: http://blog.sina.com.cn ...
- php字符串转时间戳
PHP 提供了函数可以方便的将各种形式的日期转换为时间戳,该类函数主要是: strtotime():将任何英文文本的日期时间描述解析为时间戳. mktime():从日期取得时间戳. strtotime ...
- bash keys
stty-a CTRL-S and CTRL-Q are called flow-control characters. Bash readline 使用技巧_Linux编程_操作系统_希赛网 htt ...
- JS中的JSON对象 定义和取值
1.JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任 ...
- C++ 工具类 —— 词条类(Entry)
Entry 以键值对(key-value pair)的形式定义. template <typename K, typename V> struct Entry{ K key; V valu ...
- [React] Recompose: Theme React Components Live with Context
SASS Bootstrap allows us to configure theme or branding variables that affect all components (e.g. P ...
- 剑指Offer面试题10(Java版):二进制中的1的个数
题目:请实现一个函数,输入一个整数.输出该数二进制表示中1的个数. 比如把9表示成二进制是1001,有2位是1.因此假设输入9.该函数输出2. 1.可能引起死循环的解法 这是一道非常主要的考察二进制和 ...
- [.NET Core 24]把project.json迁移到.csproj
链接:https://blog.jetbrains.com/dotnet/2017/04/04/rider-eap-update-csproj-based-net-core-support-migra ...
- svn删除文件或文件夹后提交失败及解决
svn删除文件夹后提交显示Item 'XXXX' is out of date 有这么几种可能, 1.别人已经提交代码.恰好这个文件或文件夹有改动,这样的情况须要先回复再更新再删除再提交. 2.没有人 ...