2014-12-13 208 views
1

我想在VB.Net中使用WinForms創建瀏覽器,但無法使CefSharp正常工作。我正在使用預發佈的NuGet包。我使用這個代碼來構建瀏覽器:如何讓CefSharp在VB.Net中工作WinForms

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 

而且我在debug文件夾中的以下文件: Cef File List

而且我必須在區域設置文件夾中的文件EN_US。 當我運行應用程序時,沒有出現錯誤或警告,它只是一個空白表單。誰能告訴我我做錯了什麼?我是CefSharp的新手,但是有經驗的VB.Net程序員。

+2

Me.Controls.Add(Me.browser) – 2014-12-13 10:24:09

回答

3

您似乎缺少bin目錄中的CefSharp.WinForms.dllicudtl.dat

上有把事情在這裏設置一些好的建議:https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#CefSharp_binaries

特別是:


答案結束了,在CefSharp(當前穩定版本)的37的版本,在創建瀏覽器之前需要Cef.Initialize()的顯式調用,否則它不加載。這在NuGet的v39.0.0-pre03中得到修復。

的解決方案可以是:

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

+0

Hi @yoshi,我現在加入了bot h這些文件。我確實選擇了x86,並且packages.config中唯一不同的是「targetFramework =」net40「',它是'targetFramework =」net45「'。我已經將以下代碼添加到'form1_load'中:'Dim brsettings As New CefSharp.CefSettings brsettings.UserAgent =(「MySurf Labs v3.1」) CefSharp.Cef.Initialize(brsettings)'並將其添加到頂部: '私有財產瀏覽器作爲ChromiumWebBrowser'並且沒有顯示仍然。我已經將'Me.Controls.Add(Me.browser)'添加到設計文件中。 – AJDev 2014-12-14 19:58:33

+1

1)Initialize()應該在構造表單前調用(例如https://github.com/cefsharp/CefSharp.MinimalExample/blob/master/CefSharp.MinimalExample.WinForms/Program.cs)。 2)在構建ChromiumWebBrowser之後應該立即調用Controls.Add。 – Yoshi 2014-12-14 22:23:01

+1

如果這仍然不起作用,我鼓勵你從你的項目中刪除專有代碼並暫時在GitHub上發佈它。這將允許其他人嘗試加載並發現問題。 – Yoshi 2014-12-14 22:24:10