WinFrom嵌入谷歌内核ChromiumWebBrowser

这篇博客介绍了如何在WinForm应用程序中集成ChromiumWebBrowser,通过CefSharp库实现一个自定义的WebView控件。控件支持加载网页、禁用/启用右键菜单、下载文件、与JavaScript交互等功能。还提供了处理下载事件和页面右键菜单的方法,以及在窗体关闭时清理资源的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新建WinFrom项目

 新建用户控件:WebView.cs

 引用相关dll

 编写代码如下:

namespace ChromiumWebBrowser
{
    public partial class WebView : UserControl
    {
        #region 初始化浏览器控件
        public CefSharp.WinForms.ChromiumWebBrowser webBrower;
        private bool _EnableRightMenu = false;
        /// <summary>
        /// 是否启用右键菜单
        /// </summary>
        public bool EnableRightMenu
        {
            get { return _EnableRightMenu; }
            set { _EnableRightMenu = value; }
        }

        public List<Cookie> cookieList = null;

        public bool isEnabledJWT = false;

        public string path;

        /// <summary>
        /// 初始函数
        /// </summary>
        public WebView()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 页面加载
        /// </summary>
        /// <param name="e"></param>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
        }

        #endregion

        #region 加载调用

        /// <summary>
        /// 根据路径获取页面控件_不带JS交互→(下载)
        /// </summary>
        /// <param name="strPath"></param>
        public void getWebBrowserByPath(string strPath)
        {
            webBrower = new CefSharp.WinForms.ChromiumWebBrowser(strPath);
            webBrower.Dock = DockStyle.Fill;//填充方式            
            this.Controls.Add(webBrower);
            webBrower.DownloadHandler = new DownloadHandler();//下载文件
            webBrower.MenuHandler = new MenuHandler();//右键菜单
        }

        /// <summary>
        /// 根据路径获取页面控件_不带JS交互→(下载)
        /// </summary>
        /// <param name="strPath"></param>
        public virtual void SetUrl(string strPath)
        {
            webBrower = new CefSharp.WinForms.ChromiumWebBrowser(strPath);
            webBrower.Dock = DockStyle.Fill;//填充方式     
            if (!this.EnableRightMenu)
                webBrower.MenuHandler = new StopMenuHandler();
            this.Controls.Add(webBrower);
        }

        /// <summary>
        /// 根据路径获取页面控件_带JS交互→(下载)
        /// </summary>
        /// <param name="strPath"></param>
        public void getWebBrowserByPathAndParam(string strPath, object obj)
        {
            this.Controls.Clear();
            path = strPath;
            //添加安全证书验证的过滤
            if (!CefSharp.Cef.IsInitialized)
            {
                var settings = new CefSettings();
                //安全证书
                settings.CefCommandLineArgs.Add("--ignore-urlfetcher-cert-requ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值