C#引用CefSharp并屏蔽鼠标右键和禁止拖动放置事件
来源:互联网 发布:炒股专用软件 编辑:程序博客网 时间:2024/05/16 07:51
目录:
- 目录
- C引用CefSharp
- C添加代码屏蔽鼠标右键
- C添加代码屏蔽拖动放置事件
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);}
之后运行,会发现已经屏蔽鼠标右键和拖动放置事件。
阅读全文
1 0
- C#引用CefSharp并屏蔽鼠标右键和禁止拖动放置事件
- jquery 禁止鼠标右键并监听右键事件
- CefSharp 屏蔽右键菜单
- onselectstart事件 ondragstart事件:禁止鼠标在网页上拖动.oncontextmenu事件:取消鼠标右键
- js屏蔽(禁止)键盘和鼠标功能键,如屏蔽鼠标右键,F5刷新等
- jQuery禁止|禁用|屏蔽鼠标右键
- js 禁止鼠标右键事件
- jquery禁止鼠标右键事件
- 屏蔽鼠标右键和F5
- 禁止鼠标右键保存图片、禁止拖动图片的代码
- 屏蔽右键,点击鼠标触发事件,置顶
- Flex屏蔽并自定义鼠标右键菜单
- Flex屏蔽并自定义鼠标右键菜单
- CefSharp(三)屏蔽右键菜单
- C#屏蔽鼠标滚轮事件
- 禁止网页脚本 彻底屏蔽鼠标右键 oncontextmenu
- html中禁止网页另存为、查看源文件、屏蔽鼠标右键
- IE屏蔽鼠标右键、禁止复制粘贴等功能
- GROUP BY 条件查询最新时间记录
- Using github Issue as your assets
- 大数运算之加减乘除
- linux下安装nginx
- 如何在windows中使用cmd命令去编译,运行C++程序
- C#引用CefSharp并屏蔽鼠标右键和禁止拖动放置事件
- Permutation HUD-3811 (状态压缩)
- Java实现Excel表格数据批量导入
- DockerCon EU印象:单薄到令人疑惑的MTA
- 人脸识别经典算法一:特征脸方法(Eigenface)
- 数字阶层和...递归算法
- chain redirectAction dispatcher redirect
- pascals-triangle Java code
- 在IntelliJ idea上操作GitHub