C#引用CefSharp并屏蔽鼠标右键和禁止拖动放置事件
目录:
C#引用CefSharp
在C#的设计界面,添加panel控件用来放置CEFSharp浏览器。
CEFSharp浏览器dll添加引用
using CefSharp; using CefSharp.WinForms;
CEFSharp浏览器初始化代码:
public Form1() { InitializeComponent(); InitBrowser(); } public ChromiumWebBrowser browser; public void InitBrowser() { Cef.Initialize(new CefSettings()); browser = new ChromiumWebBrowser("http://my.csdn.net/u013564470"); browser.Dock = DockStyle.Fill; panel1.Controls.Add(browser); }
上述完成之后就可以运行了!
注意事项:平台选择X86,右侧解决方案中引用DLL文件,文件放在\项目名\bin\x86\Debug
C#添加代码屏蔽鼠标右键
在屏蔽之前先查看namespace CefSharp.WinForms内的代码
public class ChromiumWebBrowser : Control, IWebBrowserInternal, IWinFormsWebBrowser, IWebBrowser, IDisposable { public ChromiumWebBrowser(string address); public IDownloadHandler DownloadHandler { get; set; } public ILoadHandler LoadHandler { get; set; } public IDisplayHandler DisplayHandler { get; set; } public IContextMenuHandler MenuHandler { get; set; } public IRenderProcessMessageHandler RenderProcessMessageHandler { get; set; } public IFindHandler FindHandler { get; set; } public IRequestHandler RequestHandler { get; set; } public IFocusHandler FocusHandler { get; set; } public IResourceHandlerFactory ResourceHandlerFactory { get; set; } public IGeolocationHandler GeolocationHandler { get; set; } public bool CanGoForward { get; } public bool CanGoBack { get; } public bool IsBrowserInitialized { get; } public override bool Focused { get; } public IDragHandler DragHandler { get; set; } public IKeyboardHandler KeyboardHandler { get; set; } public ILifeSpanHandler LifeSpanHandler { get; set; } public IDialogHandler DialogHandler { get; set; } public string Address { get; } public string TooltipText { get; } public bool IsLoading { get; } public RequestContext RequestContext { get; set; } public BrowserSettings BrowserSettings { get; set; } public bool IsActivating { get; set; } public IJsDialogHandler JsDialogHandler { get; set; } public event EventHandler<AddressChangedEventArgs> AddressChanged; public event EventHandler<StatusMessageEventArgs> StatusMessage; public event EventHandler<ConsoleMessageEventArgs> ConsoleMessage; public event EventHandler<LoadingStateChangedEventArgs> LoadingStateChanged; public event EventHandler<FrameLoadEndEventArgs> FrameLoadEnd; public event EventHandler<FrameLoadStartEventArgs> FrameLoadStart; public event EventHandler<LoadErrorEventArgs> LoadError; public event EventHandler<IsBrowserInitializedChangedEventArgs> IsBrowserInitializedChanged; public event EventHandler<TitleChangedEventArgs> TitleChanged; public IBrowser GetBrowser(); public void Load(string url); public void RegisterAsyncJsObject(string name, object objectToBind, bool camelCaseJavascriptNames = true); public void RegisterJsObject(string name, object objectToBind, bool camelCaseJavascriptNames = true); protected override void Dispose(bool disposing); protected override void OnGotFocus(EventArgs e); protected override void OnHandleCreated(EventArgs e); protected override void OnSizeChanged(EventArgs e); }
我们在其中的public IContextMenuHandler MenuHandler { get; set; }接口中更改鼠标右键事件。
方法为继承该类接口,并重写。实现方式如下:
public class MenuHandler : 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; } }
定义完之后在CEFSharp代码初始化中引用。如下:
public ChromiumWebBrowser browser; public void InitBrowser() { Cef.Initialize(new CefSettings()); browser = new ChromiumWebBrowser("http://my.csdn.net/u013564470"); browser.MenuHandler = new MenuHandler(); browser.Dock = DockStyle.Fill; panel1.Controls.Add(browser); }
之后运行,会发现已经屏蔽鼠标右键。
C#添加代码屏蔽拖动放置事件
屏蔽拖动放置事件和屏蔽鼠标右键类似。我们在其中的public IDragHandler DragHandler { get; set; }接口中更改拖动放置事件。
方法为继承该类接口,并重写。实现方式如下:
public class DragHandler : IDragHandler { public bool OnDragEnter(IWebBrowser browserControl, IBrowser browser, IDragData dragData, DragOperationsMask mask) { return true;// false;//throw new NotImplementedException(); } public void OnDraggableRegionsChanged(IWebBrowser browserControl, IBrowser browser, IList<DraggableRegion> regions) { //throw new NotImplementedException(); } }
return true;为禁止。定义完之后在CEFSharp代码初始化中引用。如下:
public ChromiumWebBrowser browser; public void InitBrowser() { Cef.Initialize(new CefSettings()); browser = new ChromiumWebBrowser("http://my.csdn.net/u013564470"); browser.MenuHandler = new MenuHandler(); browser.DragHandler = new DragHandler(); browser.Dock = DockStyle.Fill; panel1.Controls.Add(browser); }
之后运行,会发现已经屏蔽鼠标右键和拖动放置事件。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
wpf CefSharp 与 js交互
原文: wpf CefSharp 与 js交互 通过 NuGet 获取 CefSharp.WpF 组件。 xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf" //加载 需要把项目的 cpu 设置成 x86 ,Framework4.5 //使用控件 <cefSharp:ChromiumWebBrowser Name="mychrome"></cefSharp:ChromiumWebBrowser> this.mychrome.MenuHandler = new MenuHandler(); //去掉右键菜单 需要实现IContextMenuHandler 这个接口 this.mychrome.Address = @"url"; this.mychrome.RegisterJsObject("JsObj", new CallbackObjectForJs(),false); //带false 可以识别大写字母开头的函数或变量 //this.mychrome.RegisterJsObj...
- 下一篇
C# 用XiliumCefGlue做浏览器,JS和C#相互调用
原文: C# 用XiliumCefGlue做浏览器,JS和C#相互调用 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013564470/article/details/78395984 目录: 目录 XiliumCefGlue初始化最精简Demo XiliumCefGlueJS调用C代码 XiliumCefGlueC调用JS代码无返回值 XiliumCefGlueC调用JS代码有返回值 XiliumCefGlue初始化,最精简Demo XiliumCefGlue源码地址 Xilium.CefGlue手册【百度网盘下载,密码:j093】 【推荐】XiliumCefGlueDemo 2.3.0.0(吾乐吧软件站原创) 以上链接是参考资料!此例程中本着精简易懂的原则,把很多不需要的东西去掉,包括try等检查代码。下面开始步入正题。 1.解压压缩包得到下列文件。选择需要的文件复制到自己工程【pdb为调试生成文件不需要】,之后将【Xilium.CefGlue】和【Xilium.CefGlue.WindowsForms】添加到引用。 只选取了...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Mario游戏-低调大师作品
- 2048小游戏-低调大师作品
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Red5直播服务器,属于Java语言的直播服务器
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库