我想为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
我收到一个对象不存在的错误。我搞砸了一下,有时候我得到了不同的错误,比如指针无效,但到目前为止我还没有想出如何正确设置它。我认为这是处理用户表单事件的问题,但我不确定。
如果有人对此有所了解,我将不胜感激。谢谢!