C#学习笔记12:Winform网页操作-CefSharp内嵌浏览器

今日学习使用Winform操作网页,先从从窗体内嵌一个浏览器开始吧:

文章提供测试代码讲解、测试效果图、整体测试工程下载

目录

CefSharp介绍与安装:

创建解决方案安装CefSharp:

控件放置:

 整体代码贴出:

 更改网址:

测试效果展示:

整体工程下载:

查阅资料网址贴出:


CefSharp介绍与安装:

CefSharp是一个基于Chromium Embedded Framework(CEF)的.NET封装库,它允许在C#应用程序中嵌入Chromium浏览器。CefSharp的主要用途是嵌入了第三方应用以实现浏览器相关的功能,例如显示网页、执行JavaScript代码、处理用户输入等。CefSharp可以用于开发各种类型的应用程序,如网页浏览器、网页编辑器、Web应用程序等。它提供了丰富的API和功能,使开发人员能够轻松地与Chromium浏览器进行交互和控制。CefSharp是Cef的C#版本,让Chromium浏览器也可嵌入WinForms和WPF中。

简言之,Cef支持HTML,CSS,JavaScript,可以在CS中像web网站那样操作。与winform中自带的webBrowser一样,只是CefSharp是独立的,基于Chrome浏览器,而webBrowser基于IE浏览器。 

创建解决方案安装CefSharp:

首先建立一个winform程序,项目选择.NET Framework4.8框架

在Nuget中,下载cefsharp:

控件放置:

 没有放置别的控件,仅仅一个Tabcontrol而已:

 整体代码贴出:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using CefSharp;
using CefSharp.WinForms;


namespace WpfWithCefSharpDemo
{
    public partial class Form1 : Form
    {
        public ChromiumWebBrowser chromeBrowser;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            InitializeChromium(GetTabPage1());//初始化

        }

        public TabPage GetTabPage1()
        {
            return tabPage1;
        }

        public void InitializeChromium(TabPage tabPage1)
        {
            CefSettings settings = new CefSettings();
            settings.Locale = "zh-CN";
            // Initialize cef with the provided settings
            Cef.Initialize(settings);
            // Create a browser component
            chromeBrowser = new ChromiumWebBrowser("https://www.bilibili.com/");
            // Add it to the form and fill it to the form window.
            //this.Controls.Add(chromeBrowser);
            //chromeBrowser.Dock = DockStyle.Fill;

            // 确保tabPage1已经被添加到tabControl中  
            // 如果还没有,你需要先创建并添加它:tabControl.TabPages.Add("My Tab", "tabPage1");  
            // Add the browser to the TabPage's Controls collection, not the Form's  
            tabPage1.Controls.Add(chromeBrowser); // 假设tabPage1是TabControl中的一个TabPage  
            chromeBrowser.Dock = DockStyle.Fill; // Fill the entire TabPage with the browser  
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            Cef.Shutdown();
        }

    }

}

 更改网址:

 可以在框出的代码部分更改你要访问的网页网址:

测试效果展示:

整体工程下载:

https://download.csdn.net/download/qq_64257614/89291975

查阅资料网址贴出:

CefSharp入门-winform-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/625006.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

上位机图像处理和嵌入式模块部署(树莓派4b的提高版)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 目前人工智能非常火,但是人工智能需要极高的算力和海量的数据,因此相关的关联公司非常吃香,nvidia就是提供算力…

【Pytorch】7.使用Module模块搭建简易神经网络

什么是Moudel模块 torch.nn中的module是PyTorch中用于构建神经网络模型的基本单元。它包含了各种神经网络层、激活函数、损失函数等,可以通过组合不同的module来构建复杂的神经网络模型。每个module都包含了参数和方法,可以进行前向传播和反向传播等操作…

Linux软件RAID:数据冗余与性能提升的完美融合

🐇明明跟你说过:个人主页 🏅个人专栏:《Linux :从菜鸟到飞鸟的逆袭》🏅 🔖行路有良友,便是天堂🔖 目录 一、前言 1、软件RAID的概念 2、软件RAID与硬件RAID的对比…

鱼哥好书分享活动第22期:《数字政府网络安全合规性建设指南》解锁数字政府网络安全新篇章

鱼哥好书分享活动第22期:《《数字政府网络安全合规性建设指南》》解锁数字政府网络安全新篇章 阅读对象:书籍目录:了解更多:赠书抽奖规则: 当今时代,数据已成为新型生产要素,不仅是个人、企业乃至国家的重要…

SystemC学习使用记录

一、概述 对于复杂的片上系统,在进行RTL编码前,需进行深入的系统级仿真,以确认设计的体系结构是否恰当、总线是否能满足吞吐量和实现性要求以及存储器是否浪费,所进行的这些仿真要求在芯片的仿真模型上运行大量的软件&#xff0c…

【软件测试】自动化测试 Selenium 篇(一)

一、什么是自动化测试 1、自动化测试介绍 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 自动化就相当于将人工测试手段进行转换…

2024中国(厦门)国际医用消毒及感控设备展览会

2024中国(厦门)国际医用消毒及感控设备展览会 2024 China (Xiamen) International Medical Disinfection And Infection Control Exhibition 致力于打造医用消毒及感控设备产业采购一站式平台 时 间:2024年11月1-3日 November 1-3, 2024 …

6、Qt—Log4Qt使用小记1

开发平台:Win10 64位 开发环境:Qt Creator 13.0.0 构建环境:Qt 5.15.2 MSVC2019 64位 一、Log4Qt简介 Log4Qt是使用Trolltech Qt Framework的Apache Software Foundation Log4j包的C 端口。它旨在供开源和商业Qt项目使用。所以 Log4Qt 是Apa…

智能革新:如何用会话式AI提升您的工作效率?

提升职场竞争力,会话式AI产品助你走在时代前沿 在当今的职场环境中,提高工作效率是每一位人力资源管理者追求的目标。而在效率的背后,往往隐藏着工作方法的正确与否。在众多提升效率的方法中,人工智能技术无疑是一股不可忽视的力量…

Linux-页(page)和页表

本文在页表方面参考了这篇博客,特别鸣谢! 【Linux】页表的深入分析 1. 页帧和页框 页帧(page frame)是内存的最小可分配单元,也开始称作页框,Linux下页帧的大小为4KB。 内核需要将他们用于所有的内存需求&a…

CAN模块开发问题概述

问题一 问题描述 工作环境:ECU外接canoe 操作:使用CANoe模拟发送NM报文,然后停发或者断开CANoe 现象:程序跑死,调用call stack查看压栈情况如下图所示 定位代码如下图所示。可见是由于CAN模块在设置Controller状态时…

视频推拉流/视频直播点播平台EasyDSS使用Mysql数据库接口报错502如何处理?

视频推拉流/视频直播点播EasyDSS互联网直播平台支持一站式的上传、转码、直播、回放、嵌入、分享功能,具有多屏播放、自由组合、接口丰富等特点。平台可以为用户提供专业、稳定的直播推流、转码、分发和播放服务,全面满足超低延迟、超高画质、超大并发访…

MySql初学日记

MySql基础 概述 结构化查询语言(Structure Query Language)简称SQL。 是一种特殊的,标准的数据库编程语言,,一般的数据库管理系统都支持,用于对数据库进行增删改查等操作,实现数据持久化到本地。 使用完整的管理系…

如何判断点在多边形内部:OpenCV--cv2.pointPolygonTest()方法详解

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

【嵌入式模块芯片开发】ADXL345的优化精确测量和角度计算(中断单次测量、卡尔曼滤波)

【嵌入式模块芯片开发】ADXL345的优化精确测量和角度计算(中断单次测量、卡尔曼滤波) 文章目录 ADXL345的一般读取方式ADXL345的中断读取方式(单次测量)角度计算卡尔曼滤波优化后完整代码附录:压缩字符串、大小端格式…

PCIE协议-2-事务层规范-TLP Prefix Rules

2.2.10 TLP前缀规则 以下规则适用于任何包含TLP前缀的TLP: 对于任何TLP,TLP中byte0的Fmt[2:0]字段中的值100b表示存在TLP前缀,并且Type[4]位指示TLP前缀的类型。 Type[4]位中的值0b表示存在本地TLP前缀。Type[4]位中的值1b表示存在端到端TL…

Echarts结课之小杨总结版

Echarts结课之小杨总结版 前言基础回顾框架sale框架代码: user框架基础代码: inventory框架基础代码: total框架基础代码: 基础设置1.标题(Title)2.图例(Legend)实现 3.工具提示(Tooltip)实现 4.X轴(X Axis) 和 Y轴(Y Axis)5.数据…

数据采集为什么会用到代理IP?

在数据采集中,代理IP是指通过使用代理服务器来隐藏或更改真实的IP地址,以访问目标网站或服务器。那么,数据采集为什么会用到代理IP呢?使用代理IP通常用于匿名地访问网站、绕过访问限制或提高数据采集的效率和安全性。 代理服务器作…

3d渲染的基本原理和流程是什么?渲染100邀请码1a12

3D渲染是把三维模型转化为二维图像的过程,通过它我们能得到逼真炫酷的图片效果,作为3D渲染人,我们需要了解很多知识,这里我们先介绍下它的基本原理和流程。 1、3D渲染的基本原理 3D渲染的基本原理是模拟光线在三维空间中的传播和…

银行业数据运营场景下的数据埋点方案

1、引言 随着金融科技的快速发展,银行业的数据运营变得日益重要。数据埋点作为数据收集的重要手段,对于银行业务的精细化运营、风险管理和产品迭代等方面起着至关重要的作用。本方案将针对银行业数据运营场景,设计一套完整的数据埋点方案&am…