CEFSharp (Chromium Embedded Framework) w Interop User Control

Próbuję użyć powiązań CefSharp CLR dla Chromium Embedded Framework, aby utworzyć alternatywną kontrolę przeglądarki internetowej, którą możemy osadzić w aplikacji, która obsługuje tylko starsze formanty ActiveX (WonderWare InTouch HMI), próbując uzyskać pewne wsparcie HTML5 dla niektórych reeaaallly stare maszyny.

Do tej pory stworzyłem Interop User Control za pomocąZestaw narzędzi Microsoft InteropForms i osadził WebView CefSharp.WinForms na kontrolce w całkiem nagi sposób, tj.

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

Kiedy tworzę bibliotekę DLL, rejestruję ją za pomocą polecenia

regasm / tlb / codebase Cefsharp.WebControl.dll

Wydaje się, że to działa w większości, ale mam pewne problemy, których nie rozumiem w pełni. Testuję go z formularzami VBA w Excelu (wyłącznie z wygody) i kiedy używam Kreatora formularzy, faktycznie inicjuje formant, gdy jest dodawany do formularza użytkownika i ładuje stronę doskonale:

Jednak gdy próbuję pokazać formularz UseForm, wydaje się, że albo niszczy on uchwyt, albo instancję widoku internetowego (lub obu) i nie mogę się dowiedzieć, jak to naprawić. Raz próbuję pokazać formularz i spróbować czegoś takiego

Sub Test()
    WebForm.Show
    WebForm.WebControl.Navigate "www.google.com"
End Sub

Dostaję błąd, że obiekt nie istnieje. Zrobiłem trochę zamieszania i czasami dostaję różne błędy, takie jak wskaźnik jest nieprawidłowy, ale jak dotąd nie wiem, jak go poprawnie skonfigurować. Myślę, że jest to problem z obsługą zdarzeń formularza użytkownika, ale nie jestem pewien.

Gdyby ktoś miał na to jakiś wgląd, byłbym bardzo wdzięczny. Dzięki!

questionAnswers(1)

yourAnswerToTheQuestion