我想爲Chromium嵌入式框架使用CefSharp CLR綁定來創建替代的Web瀏覽器控件,我們可以將其嵌入到僅支持舊版ActiveX控件的應用程序中(WonderWare InTouch人機界面),試圖獲得一些舊的機器的HTML5支持。Interop用戶控件中的CEFSharp(Chromium嵌入式框架)
到目前爲止,我已經創建使用Microsoft InteropForms Toolkit的互操作的用戶控制和嵌入在web視圖CefSharp.WinForms到在一個漂亮的裸機方式控制,即
Private Sub WebControl_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim Settings = New CefSharp.Settings
If (CEF.Initialize(Settings)) Then
WebView = New WebView(homepage, New BrowserSettings())
WebView.Dock = DockStyle.Fill
End If
Me.Controls.Add(WebView)
End Sub
當我生成DLL,我通過命令註冊它
regasm/TLB /代碼庫Cefsharp.WebControl.dll
這似乎對日工作大部分,但我有一些我不完全理解的問題。我用Excel中的VBA形式的測試它(純粹是出於方便),當我使用窗體生成器,它實際上初始化控制,當它被添加到用戶形式的完全加載的網頁:
但是,當我嘗試顯示UseForm時,它似乎要麼銷燬句柄或webview的實例(或兩者),我不知道如何解決它。一旦我嘗試顯示錶單並嘗試類似
Sub Test()
WebForm.Show
WebForm.WebControl.Navigate "www.google.com"
End Sub
我收到一個對象不存在的錯誤。我搞砸了一下,有時候我得到了不同的錯誤,比如指針無效,但到目前爲止我還沒有想出如何正確設置它。我認爲這是處理用戶表單事件的問題,但我不確定。
如果有人對此有所瞭解,我將不勝感激。謝謝!