ChromiumWebBrowser禁止鼠标右键和拖动

C#引用CefSharp
在C#的设计界面,添加panel控件用来放置CEFSharp浏览器。
CEFSharp浏览器dll添加引用

using CefSharp;
using CefSharp.WinForms;
1
2
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);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
}

我们在其中的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);
}
1
2
3
4
5
6
7
8
9
之后运行,会发现已经屏蔽鼠标右键。

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 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);
}

原文地址:https://www.cnblogs.com/ly570/p/10992448.html

时间: 2024-09-28 00:19:18

ChromiumWebBrowser禁止鼠标右键和拖动的相关文章

js禁止鼠标右键和禁止ctrl+c复制

<script type="text/javascript"> //禁止ctrl复制 document.onkeydown=function(){ if((event.ctrlKey) && (window.event.keycode==67)){ event.returnValue=false; alert("Ctrl+C被禁止啦!"); } } document.onmousedown=function(){ if(event.but

OnContextMenu实现禁止鼠标右键

OnContextMenu事件 定义和使用:oncontextmenu 事件在元素中用户右击鼠标时触发并打开上下文菜单.注意:所有浏览器都支持 oncontextmenu 事件, contextmenu 元素只有 Firefox 浏览器支持. 在页面中添加如下代码,可以实现禁止鼠标右键 1 <!DOCTYPE html> 2 <html lang="zh-cn"> 3 <head> 4 <meta charset="utf-8&quo

网页如何禁止鼠标右键

网页如何禁止鼠标右键:在某些情况下需要禁止鼠标右键,比如有些网站为了防止复制黏贴进而禁止右键(这个对于稍稍有点专业知识的人来说都是无效的).既然有这方面的需求,那就提供一下实现此效果的代码: <script type="text/javascript"> document.oncontextmenu=new Function("event.returnValue=false;"); document.onselectstart=new Function(

禁止鼠标右键和F12

1 //禁止鼠标右键和F12 2 function click(e) { 3 if (document.all) { 4 if (event.button==2||event.button==3) { 5 alert("欢迎光临寒舍,有什么需要帮忙的话,请与管理员联系!谢谢您的合作!!"); 6 oncontextmenu='return false'; 7 } 8 } 9 if (document.layers) { 10 if (e.which == 3) { 11 onconte

禁止按键F5和禁止鼠标右键菜单 js代码

<script language="javascript"> //禁止按键F5 document.onkeydown = function(e){ e = window.event || e; var keycode = e.keyCode || e.which; if( keycode = 116){ if(window.event){// ie try{e.keyCode = 0;}catch(e){} e.returnValue = false; }else{// f

禁止鼠标右键

来源网址:www.mesky.net <script language="JavaScript"> //禁止鼠标右键 if (window.Event) document.captureEvents(Event.MOUSEUP); function nocontextmenu() { event.cancelBubble = true event.returnValue = false; return false; } function norightclick(e) {

禁止鼠标右键的代码(转)

1.禁止鼠标左右键代码/禁止网页选中/禁止另存为/防复制代码 按 Ctrl+C 复制代码 按 Ctrl+C 复制代码 2.禁止鼠标左右键 1 <SCRIPT language=javascript> 2 <!-- 3 if (window.Event) 4 document.captureEvents(Event.MOUSEUP); 5 function nocontextmenu(){ 6 event.cancelBubble = true 7 event.returnValue =

禁止鼠标右键和键盘右键

//禁用键盘右键 $(document).keyup(function (e) {      var nkeyCode = e.keyCode;       if (nkeyCode === 93) {           return false;       }   }); ////禁用鼠标右键   $("body").attr("oncontextmenu", "return false");

jQuery禁用鼠标右键代码实例

jQuery禁用鼠标右键代码实例:很多用户可能由于某些需要,有禁止鼠标右键这么一个要求,下面就是一个能够实现此功能的代码.代码如下: $(function(){ $(document).bind("contextmenu",function(e){ return false; }) }) 以上代码实现了我们的要求,直接套用就可以了. 原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=13503 更多内容可以参阅: