1

我正在尝试使用 WinForms 在 VB.Net 中创建一个浏览器,但我无法让 CefSharp 工作。我正在使用预发布的 NuGet 包。我正在使用此代码来构建浏览器:

    Private m_IsInDesignMode As Boolean = True
Public ReadOnly Property IsInDesignMode() As Boolean
    Get
        Return m_IsInDesignMode
    End Get
End Property
Public Sub New()
    InitializeComponent()
    m_IsInDesignMode = (LicenseManager.UsageMode = LicenseUsageMode.Designtime)
    Me.browser = New ChromiumWebBrowser("http://emposoft.tk")
    Me.browser.Dock = DockStyle.Fill

End Sub

我在调试文件夹中有以下文件: Cef 文件列表

我在 locales 文件夹中有 en_US 文件。当我运行应用程序时,没有出现错误或警告,它只是一个空白表单。谁能告诉我我做错了什么?我是 CefSharp 的新手,但我是一位经验丰富的 VB.Net 程序员。

4

2 回答 2

3

您似乎不见了CefSharp.WinForms.dll,并且icudtl.dat不在 bin 目录中。

有一些关于在此处进行设置的好技巧:https ://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#CefSharp_binaries

尤其是:


答案最终是在 CefSharp 版本 37(当前稳定版本)中,您需要Cef.Initialize()在创建浏览器之前显式调用,否则它不会加载。这在v39.0.0-pre03NuGet 中已修复。

解决方案是:

Public Sub New() InitializeComponent() m_IsInDesignMode = (LicenseManager.UsageMode = LicenseUsageMode.Designtime) CefSharp.Cef.Initialize() Me.browser = New CefSharp.WinForms.ChromiumWebBrowser("http://emposoft.com") Me.Controls.Add(Me.browser) End Sub

于 2014-12-13T08:02:43.393 回答
0

有趣的。作为一个仅供参考,如果您添加一个面板然后将 me.browser.parent 设置为该面板而不是那样做,那么通过代码向您的表单添加控件要容易得多。然后,您可以通过 IDE 控制它的去向以查看它,然后通过将 Dock 设置为填充来对其进行编码。我看到他们使用 me.controls.add 的许多代码段,但只是将父级设置为面板更直接,因此不需要 controls.add。

于 2018-11-02T03:52:25.457 回答