MS Access Web Browser Control не загружает HTML контент в VBA, если для Visible установлено значение False - PullRequest
0 голосов
/ 25 апреля 2020

В MS Access 2016 у меня есть форма с элементом управления веб-браузера, WebBrowser. Сначала я хочу скрыть элемент управления, поэтому Visible в листе свойств элемента управления установлен на False.

Sub, ShowHTML, предназначен для загрузки HTML содержимого в WebBrowser и отобразить его содержимое пользователю, изменив свойство Visible элемента управления на True.

Private Sub ShowHTML()
    Dim HTMLDoc As HTMLDocument
    Set HTMLDoc = Me.WebBrowser.Object.Document
    HTMLDoc.body.innerHTML = "<div style=""font-family:Arial; font-size:14px; color:black""><p>Test</p></div>"
    Me.WebBrowser.Object.Silent = True
    Me.WebBrowser.Visible = True
 End Sub

Предполагая, что ShowHTML вызывается при нажатии кнопки, я заметил, что после первого щелчка содержимое, отображаемое в браузере, всегда The address is not valid .... Однако после второго щелчка (когда браузер виден) содержимое HTML, установленное в моем коде VBA, успешно загружается в браузер. Это верно для всех последующих кликов.

Если установить для свойства Visible значение True в листе свойств элемента управления, чтобы при загрузке формы отображалось WebBrowser, содержимое HTML успешно загружается при первом щелчке. Я также понял, что даже если я не установлю Me.WebBrowser.Visible = True в Sub, элемент управления все равно будет отображаться после вызова Sub.

Что объясняет это поведение и как я могу скрыть свой элемент управления Web Browser, успешно загрузить HTML контент при первом вызове в браузере и только потом отобразить его пользователю?

1 Ответ

0 голосов
/ 25 апреля 2020

Это сработало для меня:

Private Sub CommandButton1_Click()
    With Me.WebBrowser
        .Navigate "about:blank"
        Do While .Document.body Is Nothing: DoEvents: Loop
        .Document.body.innerHTML = "<div style=""font-family:Arial; font-size:14px; color:black""><p>Test</p></div>"
        .Visible = True
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...