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

news2024/11/16 3:40:14

今日学习使用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博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构与算法学习笔记十---链队列的表示和实现(C++)

目录 前言 1.队列的概念 2.队列的表示和实现 1.定义 2.初始化 ​编辑 3.销毁队列 4.清空队列 5.队列判空 6.队列长度 7.获取队头元素 8.入队 9.出队 10.遍历 11.完整代码 前言 这篇博客主要讲的是对队列的链式存储。 1.队列的概念 队列是一种访问受限的线性表。…

知识图谱开发日志

应用于应用环境的配置.测试.发布 假如你写了一个web,并且测试调试都没有问题 并且,你想发给你的朋友,导师,或者部署到远程云服务器上 那么,你需要配置相同的软件,比如数据库,web服务器,必要的插件,库,etc…但这并不一定能保证软件的正常运行,因为别人可能使用完全不同的操作系统…

Facebook广告运营黑五类怎么投?

哈喽呀,很多小伙伴不知道黑五具体是哪些今天就跟大家来说说,黑五类是指一些擦边的受到限制的产品,指的是药品、医疗器械、丰胸、减肥、增高这五类产品。 黑五类产品可以在哪些平台进行投放: 目前黑五类可以广告投放的跨境电商平台…

第三方组件element-ui

1、创建 选vue2 不要快照 vue2于vue3差异 vue2main。js import Vue from vue import App from ./App.vueVue.config.productionTip falsenew Vue({render: h > h(App), }).$mount(#app)vue3 main.js vue2不能有多个跟组件(div) 代码:Mo…

ssm教材管理系统

ssm教材管理系统 一、主要技术点 ssm,easypoi(对excel导入导出),下拉列表二级联动,live-2d看板娘,echartjs图表,图片上传下载。。 二、主要业务逻辑 管理员可以增删改查教材、教材商、入库教材、用户(用户包括学生…

2024年京东618红包领取口令是什么?2024年618京东红包活动时间是从什么时候开始到几号结束?

2024年京东618红包活动时间 京东618红包活动时间是从2024年5月28日开始,一直持续到6月18日结束。 2024年京东618红包领取方式 在2024年京东618活动时间内,每天都可以打开手机京东APP,输入框搜索红包领取口令「 天降红包882 」,搜…

Java——对象的打印

当我们运行如下代码: public class Person {String name;String gender;int age;public Person(String name,String gender,int age){this.name name;this.gender gender;this.age age;}public static void main(String[] args){Person person new Person(&quo…

Google I/O 2024 干货全解读:Gemini AI 横空出世,智能未来触手可及!

Google I/O 2024 干货全解读:Gemini AI 横空出世,智能未来触手可及! 博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》…

从新手到高手,教你如何改造你的广告思维方式!

想要广告震撼人心又让人长时间记住?答案肯定是“创意”二字。广告创意,说白了就是脑洞大开,想法新颖。那些很流行的广告,都是因为背后的想法特别、新颖。做广告啊,就得不停地思考,创新思维是关键。 广告思…

一部手机、一段视频,快速开展自动无人直播获取潜在客户

​​直播已经成为一种全新的营销方式。对于实体门店而言,直播具有吸引潜在客户、提升品牌知名度以及促进销售的巨大潜能。然而,很多门店因缺乏专业的直播设备和人员而无法轻松实现直播。为此,我们隆重介绍一款手机自动直播门店助手&#xff0…

数据治理框架下,如何实现高效且安全的数据提取与分析

一、引言 随着数字化时代的到来,数据已成为企业运营和决策的核心资产。然而,数据的复杂性和多样性也为企业带来了数据提取与分析的挑战。为了实现数据的有效利用,并确保数据的安全性,需要在数据治理框架下构建高效且安全的数据提…

智慧公厕,提升公共厕所管理效率的信息化变革

现代社会中,公共厕所的管理成为一个不可忽视的问题。随着城市化进程的加快,人们对公厕的需求日益增加,但公厕的管理却面临诸多困难。为了解决这一问题,智慧公厕应运而生,通过信息化的变革,提高公厕的管理效…

253 基于matlab的液压位置控制源代码

基于matlab的液压位置控制源代码,有摩擦补偿,利用滑模控制器实现,神经网络逼近。最后实现位置角度和速度的控制。输出控制误差。程序已调通,可直接运行。 253 液压位置控制 滑模控制器 控制误差 - 小红书 (xiaohongshu.com)

springboot引入第三方jar包本地lib并打包

1&#xff1a;在项目根目录创建lib目录并放入第三方lib包 -- project ----lib &#xff08;放在这儿&#xff09; ----src ----target2&#xff1a;pom中引入第三方lib <!-- 引入magus模块 --><dependency><groupId>org.jeecg.msgus</groupId><art…

【源码】2024全新多语言区块链交易所源码/期权交易/申购/币币秒合约交易所

全新ui&#xff0c;更新很多内容&#xff0c;具体看图&#xff0c;全部开源 全新多语言区块链交易所源码/期权交易/申购/币币秒合约交易所 - 吾爱资源网

C++复习 -- 继承

继承基本概念 继承是面向对象编程&#xff08;OOP&#xff09;中的一个核心概念&#xff0c;特别是在C中。它允许一个类&#xff08;称为派生类或子类&#xff09;继承另一个类&#xff08;称为基类或父类&#xff09;的属性和方法。 继承的主要目的是实现代码重用&#xff0…

[启明智显技术分享] 在ESP32环境搭建过程中,如果在VS Code中遇到乱码问题应该怎么解决

前言&#xff1a; 【启明智显】专注于HMI&#xff08;人机交互&#xff09;及AIoT&#xff08;人工智能物联网&#xff09;产品和解决方案的提供商&#xff0c;我们深知彩屏显示方案在现代物联网应用中的重要性。为此&#xff0c;我们一直致力于为客户提供彩屏显示方案相关的技…

Gitlab、Redis、Nacos、Apache Shiro、Gitlab、weblogic相关漏洞

文章目录 一、Gitlab远程代码执行&#xff08;CVE-2021-22205&#xff09;二、Redis主从复制远程命令执行三、Nacos认证绕过漏洞&#xff08;CVE-2021-29441&#xff09;四、Apache Shiro认证绕过漏洞&#xff08;CVE-2020-1957&#xff09;五、Gitlab任意文件读取漏洞&#xf…

(done) NLP+HMM 协作,还有维特比算法

参考视频&#xff1a;https://www.bilibili.com/video/BV1aP4y147gA/?p2&spm_id_frompageDriver&vd_source7a1a0bc74158c6993c7355c5490fc600 &#xff08;这实际上是 “序列标注任务”&#xff09; HMM 的训练和预测如下图 训练过程&#xff1a;我们首先先给出一个语…

【leetcode面试经典150题】-27. 移除元素

88.合并两个有序数组 1 题目介绍1 个人解题思路1.1 解题代码1.2 思路解析 2、分析官方题解2.1 单侧双指针2.2 双侧双指针 1 题目介绍 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外…