Visual Studio 2019 集成CefSharp[通俗易懂]

Visual Studio 2019 集成CefSharp[通俗易懂]1.点击“引用”,右键”管理Nuget程序包”,搜索框里输入”CefSharp”,选择”CefSharp.WinForms”,安装。这样就会自动把CefSharp需要的拓展给安装齐全了,之后在解决方案的packages目录里会有4个文件夹cef.redist.x64.版本号,cef.redist.x86.版本号,CefSharp.Common.版本号,CefSharp.WinForms.版本号。2.使用代码:usingCefSharp.WinForms;usingMicrosoft

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.点击“引用”,右键”管理Nuget程序包”,搜索框里输入”CefSharp”,选择”CefSharp.WinForms”,安装。

Visual Studio 2019 集成CefSharp[通俗易懂]

 这样就会自动把CefSharp需要的拓展给安装齐全了,之后在解决方案的 packages 目录里会有4个文件夹 cef.redist.x64.版本号,cef.redist.x86.版本号,CefSharp.Common.版本号,CefSharp.WinForms.版本号。

2.使用代码:

using CefSharp.WinForms;
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;
using ZKKC.Lib;

namespace Wb
{
    public partial class FormMain : Form
    {
        private CefSharp.WinForms.ChromiumWebBrowser wb_main;
        delegate void SetWebBrowserVisible(Boolean result);

        public FormMain()
        {
            InitializeComponent();

        }

        /// <summary>
        /// 初始化WebBrowser
        /// </summary>
        public void InitWb()
        {

            String url = "https://ie.icoa.cn/";

            this.wb_main = new CefSharp.WinForms.ChromiumWebBrowser(url);
            this.wb_main.ActivateBrowserOnCreation = false;
            this.wb_main.Dock = System.Windows.Forms.DockStyle.Fill;
            this.wb_main.Location = new System.Drawing.Point(0, 0);
            this.wb_main.Name = "wb_main";
            this.wb_main.Size = new System.Drawing.Size(800, 450);
            this.wb_main.TabIndex = 0;
            this.wb_main.FrameLoadStart += new System.EventHandler<CefSharp.FrameLoadStartEventArgs>(this.wb_main_FrameLoadStart);
            this.wb_main.FrameLoadEnd += new System.EventHandler<CefSharp.FrameLoadEndEventArgs>(this.wb_main_FrameLoadEnd);
            this.pl_main.Controls.Add(this.wb_main);

            try
            {
                this.toToggleWbVisible(false);  //直接设置Visible=false,会导致浏览器不会访问地址,所以在访问底之前手动设置为不可见
                this.wb_main.Load(url);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw e;
            }
        }
        
        private void FormMain_Load(object sender, EventArgs e)
        {
            //初始化WebBrowser
            InitWb();
        }
        
        /// <summary>
        /// 修改浏览器插件的可见性
        /// </summary>
        /// <param name="result"></param>
        private void toToggleWbVisible(Boolean result)
        {
            // InvokeRequired required compares the thread ID of the
            // calling thread to the thread ID of the creating thread.
            // If these threads are different, it returns true.
            if (this.wb_main.InvokeRequired)
            {
                SetWebBrowserVisible d = new SetWebBrowserVisible(toToggleWbVisible);
                this.Invoke(d, new object[] { result });
            }
            else
            {
                this.wb_main.Visible = result;
            }
        }

        /// <summary>
        /// 浏览器开始加载事件把浏览器设置为不可见
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void wb_main_FrameLoadStart(object sender, CefSharp.FrameLoadStartEventArgs e)
        {
            //刷新 about:blank 页面时不隐藏控件
            if (!e.Url.Equals("about:blank"))
            {
                this.toToggleWbVisible(false);
            }
        }

        /// <summary>
        /// 浏览器结束加载事件把浏览器设置为可见
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void wb_main_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e)
        {
            this.toToggleWbVisible(true);
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192800.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • wireshark抓包工具详细说明及操作使用_wireshark抓包结果分析

    wireshark抓包工具详细说明及操作使用_wireshark抓包结果分析多年之后,愿你有清风与烈酒,也有人是你的归途。打开Wireshark抓包工具开始抓包会看到如下展开内容:这里我是对wlan进行抓包,192.168.2.112是我当前wifi的ip地址。点击某个包,可以查看具体内容,差不多刚好对于五层协议:Frame:物理层的数据帧概况。EthernetII:数据链路层以太网帧头部信息。InternetProtocolVersion4:互联网层I

    2025年9月24日
    5
  • Laravel Eloquent ORM 时如何查询表中指定的字段

    Laravel Eloquent ORM 时如何查询表中指定的字段

    2021年11月8日
    48
  • 硬件知识:DP接口和HDMI接口对比,看完你就懂了!

    硬件知识:DP接口和HDMI接口对比,看完你就懂了!电脑显示器高清传输通过会用到两个接口,就是DP接口和HDMI接口,今天电脑学习小编带大家对比一下这两个接口。一、DP接口DisplayPort缩写DP,是一个由PC及芯片制造商联盟开发,视…

    2022年7月22日
    43
  • Manacher算法_马拉车图

    Manacher算法_马拉车图参考:https://www.cnblogs.com/xiuyangleiasp/p/5070991.html先了解下数组P[i],id,mx的含义,下面的红字部分Manacher算法利用一个辅助数组P[i]表示以字符Str[i]为中心的最长回文子串的最右(左)字符到Str[i]的距离(包括Str[i])以abbc为例,首先预处理变成:$#a#b#b#c#(预处理是为了便于处理)可…

    2025年8月14日
    3
  • 网站备案说明[通俗易懂]

    网站备案说明[通俗易懂]按照工信部《非经营性互联网信息服务备案管理办法》的规定,企业或个人在中国国内开设网站的话,需要进行网站备案。很多个人在开设网站的时候不知道如何进行备案,现在我就介绍一下个人网站备案的方法和流程。(商城,爆客,直播,小程序,棋牌游戏等各种软件开发电话微信同步13383813870,QQ867828500)个人网站备案一般是通过网站接入商提交个人备案资料,也就是说,

    2025年6月27日
    5
  • SciPy 安装_scipy中文手册

    SciPy 安装_scipy中文手册章节SciPy介绍SciPy安装SciPy基础功能SciPy特殊函数SciPyk均值聚类SciPy常量SciPyfftpack(傅里叶变换)SciPy积分SciPy插值SciPy输入输出SciPy线性代数SciPy图像处理SciPy优化SciPy信号处理SciPy统计SciPy安装确保已经安装pip。最佳实践是,一起安装NumP…

    2025年7月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号