Visual Studio是不是让我通过设计师添加CefSharpBrowserControl到窗体

问题描述 投票:-2回答:1

所以我决定尝试一下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,从工具箱中删除。”或类似的规定。它应该刚好能放到设计师,但它显然不是。

vb.net cefsharp chromium-embedded
1个回答
0
投票

上有CefSharp的谷歌组类似的讨论:Adding CefSharp control to the toolboxThe 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。

© www.soinside.com 2019 - 2024. All rights reserved.