所以我决定尝试一下CefSharp扩展,什么是我遇到的第一件事情?这并不让我用附加的错误。
因为我做的每一件事情即使是管理员或创建者说,在任何论坛,我一直在做,这是可笑的令人沮丧。我想只是汇编关于CEFSharp的GitHub的源代码,但没有奏效。
如果我敢说真话,我认为他们应该提供的,你可以再补充,而不是只期望你自己做的引用,.dll文件的预编译的.dll文件或组。这只是一个痛苦,CEFSharp。
我试图把配置于x64和任何CPU。我试着做引用关联到CEFSharp几个不同的DLL。我试图以编程方式添加浏览器元素,而这工作,但我不能用它做任何事情(比如当网页加载完成执行代码)。到目前为止,这些解决方案已经在所有的工作。
Imports CefSharp
Imports CefSharp.WinForms
Public Class Browser
Dim browser As New _
CefSharp.WinForms.ChromiumWebBrowser("https://google.com/")
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles _
MyBase.Load
Me.Controls.Add(browser)
browser.Parent = Panel1
browser.Dock = DockStyle.Fill
End Sub
End Class
任何时候,我想通过设计师工具箱浏览器控件添加到我的形式,它不会让我。它不断表明说,这错误框“无法加载CefSharpBrowser,从工具箱中删除。”或类似的规定。它应该刚好能放到设计师,但它显然不是。
上有CefSharp的谷歌组类似的讨论:Adding CefSharp control to the toolbox和The name "WebView" does not exist in the namespace。
他们说,使用Visual Studio中的混合模式(C ++ / CLR)程序时,有一定的局限性。没有Visual Studio设计支持出CefSharp盒子。有some hack关于如何做到这一点,但我不认为它值得甚至花时间就可以了。大多数人只是接受事实,并继续前进。
我们成功地使用CefSharp我们的项目之一,我们增加ChromiumWebBrowser控制到窗体编程,非常相似,你如何你的样品中做到了。
我试图以编程方式添加浏览器元素,而这工作,但我不能用它做任何事情(比如当网页加载完成执行代码)。到目前为止,这些解决方案已经在所有的工作。
还有,你可以用它来监视Web浏览器控件的状态LoadingStateChanged事件。我们用它来显示进度指示,直到我们的网页完全加载。下面是我们如何做到这一点:
private System.Windows.Forms.PictureBox picProgress;
bool loaded = false;
ChromiumWebBrowser browse;
public Main()
{
var uiUrl = "some url or local html file";
browse = new ChromiumWebBrowser(uiUrl);
browse.Dock = DockStyle.Fill;
Controls.Add(browse);
browse.LoadingStateChanged += Browse_LoadingStateChanged;
}
private void Browse_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e)
{
if (!e.IsLoading)
{
picProgress.BeginInvoke((Action)(() => {
loaded = true;
picProgress.Visible = false;
browse.Visible = true;
}));
}
else
{
browse.BeginInvoke((Action)(() => {
loaded = false;
browse.Visible = false;
}));
}
}
对不起,这是在C#中,但我认为你可以很容易地适应它VB.net。