本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(1)

c#(CefSharp浏览器)dotnetbar2之SuperTabControl标签应用案例(3种方法控制)

发布于2021-05-30 19:44     阅读(1293)     评论(0)     点赞(19)     收藏(4)


关于此组件使用方法不再过多描述

本博文:重点说明 在(dotnetbar) SuperTabControl 做标签浏览器的使用心得。

翻阅资料实践后总结的关键点,以备查阅;重点OnBeforePopup 3种方法

  1. public class CefSharpOpenPageSelf : ILifeSpanHandler
  2. {
  3. public bool DoClose(IWebBrowser browserControl, IBrowser browser)
  4. {
  5. if (browser.IsDisposed || browser.IsPopup)
  6. {
  7. return false;
  8. }
  9. return true;
  10. }
  11. public void OnAfterCreated(IWebBrowser browserControl, IBrowser browser)
  12. {
  13. //throw new NotImplementedException();
  14. }
  15. public void OnBeforeClose(IWebBrowser browserControl, IBrowser browser)
  16. {
  17. //throw new NotImplementedException();
  18. }
  19. public bool OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
  20. {
  21. try
  22. {
  23. //方法1:自身窗口中打开====================
  24. if (!popnewwin)
  25. {
  26. var chromiumWebBrowser = (ChromiumWebBrowser)browserControl;
  27. chromiumWebBrowser.Load(targetUrl);//自身加载此句起作用!!
  28. newBrowser = null;
  29. return true; //Return true to cancel the popup creation 取消弹出
  30. }
  31. //else
  32. //{
  33. // //方法2:弹出新窗口=========================
  34. // newBrowser = null;
  35. // return false;//弹出新窗口
  36. //}
  37. else
  38. {
  39. //方法3:新TAB中打开=======================
  40. newBrowser = null;
  41. superTabCtl.Invoke(new MethodInvoker(() =>
  42. {
  43. string stxt = "新页面..." + _NewTabId++;//显示默认文本
  44. SuperTabItem tab = superTabCtl.CreateTab(stxt);//新建tab名称为 NewTabx
  45. ChromiumWebBrowser wb = new ChromiumWebBrowser(targetUrl)
  46. {
  47. KeyboardHandler = new KeyBoardHander(),
  48. //MenuHandler = new MenuHandler(),
  49. DownloadHandler = new DownloadHandler(),
  50. LifeSpanHandler = new CefSharpOpenPageSelf(),
  51. Dock = DockStyle.Fill
  52. };
  53. wb.BrowserSettings = bset;
  54. tab.Name = "tabitem_" + (_NewTabId - 1);//tab名称(保证唯一)
  55. tab.Tag = targetUrl;// (_NewTabId - 1);//作为参照体唯一性
  56. tab.Symbol = "\uf179";//f08b,f090,f0ca,f0cb,f17d,f170 (应用方式)
  57. tab.SymbolSize = 12F;//图标大小
  58. tab.CloseButtonVisible = true;//可关闭
  59. tab.AttachedControl.Controls.Add(wb);//浏览器添加到panel
  60. if (!tab.IsSelected)
  61. superTabCtl.SelectedTab = tab;//选中最新建的tab ***
  62. wb.Update();
  63. //添加browser事件
  64. wb.FrameLoadEnd += new EventHandler<FrameLoadEndEventArgs>(wb_FrameLoadEnd);//加载完成
  65. wb.FrameLoadStart += new EventHandler<FrameLoadStartEventArgs>(wb_FrameLoadStart);//加载开始事件
  66. wb.AddressChanged += popwb_AddressChanged;//地址????
  67. wb.TitleChanged += wb_TitleChanged;//同步网页标题到tab.text(更新提示文本)
  68. }));
  69. return true;//alse以让CEF创建窗口非常重要。
  70. }
  71. }
  72. catch (Exception ex){
  73. newBrowser = null;
  74. return false;
  75. }
  76. }
  77. }

标签加个性小图标(从网页中自取未做实现)

 二维码介绍见:https://jiuai.blog.csdn.net/article/details/117318539

现浏览器基本实现了大部分功能

截图,取色,大小写转换,源代码获取,文本筛选提取,一键导出PDF,开机自启动(不修改注册表)系统各种工具集成,常见网址导航,可双面浏览器显示(点击齿轮切换开关,注意调成非标签模式为佳),ie内核(简单集成,其他应用见相关博文介绍),可以换tab皮肤,可以换位置(四个方向 上 右 下 左),钟表插件,MQTT物联网远程控制(重点。有介绍见博文)--可以实现手机控制。。。绝对的好玩刺激,也是首创!

   

以前做过多款浏览器,这个功能最强,也是最满意的一次。 



所属网站分类: 技术文章 > 博客

作者:美丽的老婆你听我说

链接:http://www.phpheidong.com/blog/article/86905/5fae62edb90d62698a34/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

19 0
收藏该文
已收藏

评论内容:(最多支持255个字符)