前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Visual Studio 2019 集成CefSharp[通俗易懂]

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

作者头像
全栈程序员站长
发布2022-09-30 15:25:19
1.5K0
发布2022-09-30 15:25:19
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈

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

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

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

2.使用代码:

代码语言:javascript
复制
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.cn/192800.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月16日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档