C#Winform使用CefSharp将WebBowser控件替换为Chrome内核

先废话一段 ,好久没写博客了,也是跟环境工作有关,之前做技术,天天博客园的翻着 (还是喜欢博客园,因为大家都无私分享交流啊,不像CSDN啥东西都要积分,鄙视之),现在偶尔需要个什么东西了才打开VS写写,刚一上来,看到以前关注的朋友还有坚持写博客的 ,以前还时不时的记录下心情想法,现在也没那个兴趣了,7年改变一个人,看来是吧,回归主题~

公司参加某信息展会,需要把几个网站系统类似PPT轮播一样在一个屏幕展示出来,找不到解决方案,然后我就试着揽下了这个任务,先想到用winform的webbrowser,尝试了下没问题可以实现,但是有些网站系统需要加载比如阿里控件等,webbrowser支持的是IE内核,很多系统需要chorme的支持,于是在网上找方法 ,先找到了WebKit.NET这个控件,添加了进去,但是还是加载不出来阿里的控件,第一天就放弃了,今天闲来无事,想着再试试,继续百度一下,搜到了一篇技术贴:http://www.codeceo.com/article/cefsharp-charp-app-chrome.html (竟然是码农网),里面提到这个CefSharp:

CefSharp可靠,快速,完全开源,不需要任何额外的依赖就可以安装到最终用户(除VC ++ Runtime 2013以外)。CefSharp同样可工作于WPF项目。

CefSharp v51 x86(32位)  https://raw.githubusercontent.com/hgupta9/CefsharpSite/gh-pages/files/CefSharp51_x32.zip

CefSharp v51 x64(64位)    https://raw.githubusercontent.com/hgupta9/CefsharpSite/gh-pages/files/CefSharp51_x64.zip

我没有用NuGet安装,直接下载的,建议直接将解压的文件全部粘贴到Debug目录下,然后通过项目引用--添加引用,将红框中三个dll文件引用到项目中,

需要在.cs和Designer.cs页面头文件引用集加上这两行代码:

using CefSharp;
      
using CefSharp.WinForms;
      
设计面板拖入webbrowser控件,此时当前控件还是winform自带的,需要在Designer.cs改下代码:
      
//private System.Windows.Forms.WebBrowser webBrowser1;

private ChromiumWebBrowser webBrowser1;

将默认生成的第一行代码改成第二行,此时声明的才是CefSharp.WinForms的webbrowser控件

this.webBrowser1 = new ChromiumWebBrowser("www.baidu.com");

至此,F6运行不报错的情况下F5应该能看到百度页面了。

。。。

。。。

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
↓ 
以下是重点   ↓ ↓ ↓ ↓
↓ ↓ ↓ ↓ ↓ ↓

但是,我的VS报错,我用的VS2010,.NETFramework4.5
提示应该是版本不对,ChromiumWebBrowser没有引用集,但确实是已经将CefSharp添加到项目中,且引用成功了,然后继续百度:https://www.cnblogs.com/Leo_wl/p/6239233.html#_label1(还是博客园niubility),看到这个帖子中一个方式:

所以只能通过工具-程序包管理器-程序包管理控制台手动命令行导入版本v49。0.1的,输入命令Install-Package
CefSharp.WinForms -Version
49.0.1
回车等待执行完成。

我试着执行了一下,然后提示安装成功,F6了一下,竟然编译通过,报错没有了,应该是将程序及退回到V49版本(我去百度CefSharp下载低版本,官网上没有响应的低版本提供包,所以这个方式可行),然后我需要阿里控件的页面也能顺利加载控件正常显示了
,大功告成~

代码就不贴了,主要是想记录下引用了CefSharp.dll后VS报错的解决方式,相比WebKit.NET的30多M,CefSharp的资源包更大些解压完有100+M了,如果有同样需求的朋友可以两个控件都参考下。

出处:http://blog.sina.com.cn/s/blog_5673e0ab0102y2lb.html

原文地址:https://www.cnblogs.com/mq0036/p/11059644.html

时间: 2024-10-09 00:36:04

C#Winform使用CefSharp将WebBowser控件替换为Chrome内核的相关文章

C#将WebBowser控件替换为Chrome内核

原文:C#将WebBowser控件替换为Chrome内核 摘要 由于最近要做一个浏览器式的软件,其中有不少地方需要使用到jQuery和BootStrap,但是在C#中,默认的WebBrowser控件默认使用的是IE的core,而低版本的IE在JS加载上总是容易有问题,因此,打算使用Chrome的内核替换IE. 准备工作 首先,你要明白Chrome浏览器的内核不叫Chrome,而是Webkit,因此,我们只要找到Webkit的项目就好了. 1.下载WebKit的项目bin,网址如下: https:

Winform中子线程访问界面控件时被阻塞解决方案

public partial class WebData_Import : Form { //声明用于访问主界面的委托类型 public delegate void deleGetOrderdata(string info); //声明访问主界面委托类型的变量 public deleGetOrderdata OptGetOrderData; int CompanyID = 0; public WebData_Import() { InitializeComponent(); cmbCompany

winform中,如何控制控件位置随窗体的大小改变而改变

winform中,如何控制控件位置随窗体的大小改变而改变 有如下3种方法: 方法1 [csharp] view plaincopy using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace MarkPrint

C# WinForm中使用WPF的控件

步骤1:创建WinForm工程 步骤2:在刚刚创建的WinForm工程中新建或者添加现有的WPF用户自定义控件 <UserControl x:Class="wndFormTest.ComBoBoxButton" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml&q

C# Winform 跨线程更新UI控件常用方法总结(转)

出处:http://www.tuicool.com/articles/FNzURb 概述 C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件的线程访问它”的异常.处理跨线程更新Winform UI控件常用的方法有4种: 1. 通过UI线程的SynchronizationContext的Post/Send方法更新: 2. 通过UI控件的Invoke/BegainInvoke方法更新: 3. 通过BackgroundWorker取代Thre

[WinForm]按名称递归查找控件

关键代码: /// <summary> /// 向下递归查找控件 /// </summary> /// <param name="parentControl">查找控件的父容器控件</param> /// <param name="findCtrlName">查找控件名称</param> /// <returns>若没有查找到返回NULL</returns> public

c#winform中如何修改ListView控件每个单元格的颜色

ListView在View属性为Details的时候它呈现的方式和DataGirdView差不多,它的每一行都是一个ListViewItem,然而每个ListViewItem都有一个BackColor的属性,但是设置了这个属性却没有任何作用.因为是ListView的每一行的样式都继承的父控件的样式所以无法改变. 解决方案: ListViewItem item; item = new ListViewItem(new string[] { "NAME","" });

C# winform窗体简单保存界面控件参数到xml

原文:C# winform窗体简单保存界面控件参数到xml 引用网上的 XMLHelper 地址 :https://www.cnblogs.com/chnboy/archive/2009/04/02/1427652.html 稍做修改 using System; using System.Linq; using System.Xml; namespace FormTest { /// <summary> /// XMLHelper XML文档操作管理器 /// </summary>

C# Winform 跨线程更新UI控件常用方法汇总

C# Winform 跨线程更新UI控件常用方法汇总 概述 C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件的线程访问它”的异常.处理跨线程更新Winform UI控件常用的方法有4种:1. 通过UI线程的SynchronizationContext的Post/Send方法更新:2. 通过UI控件的Invoke/BeginInvoke方法更新: 3. 通过BackgroundWorker取代Thread执行异步操作:4. 通过设置窗体