大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
1.点击“引用”,右键”管理Nuget程序包”,搜索框里输入”CefSharp”,选择”CefSharp.WinForms”,安装。
这样就会自动把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);
}
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192800.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...