如果 Visible 设置为 False,MS Access Web 浏览器控件不会加载 VBA 中的 HTML 内容

MS Access Web Browser Control not loading HTML content in VBA if Visible is set to False

在 MS Access 2016 中,我有一个带有 Web 浏览器控件的表单,WebBrowser。我一开始想隐藏控件,所以在控件的属性Sheet.

Visible设置为False

ShowHTML 旨在加载 WebBrowser 中的 HTML 内容并通过更改 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 ...。然而,第二次点击后(一旦浏览器可见),在我的 VBA 代码中设置的 HTML 内容在浏览器中成功加载。这适用于所有后续点击。

如果我在控件的 属性 Sheet 中将 Visible 属性 设置为 True 以便 WebBrowser 在表单时可见加载时,HTML 内容会在第一次点击时成功加载。我也意识到,即使我没有在Sub中设置Me.WebBrowser.Visible = True,调用Sub后控件仍然会显示。

如何解释此行为以及如何隐藏我的 Web 浏览器控件,在浏览器中首次调用时成功加载 HTML 内容,然后才将其显示给用户?

这对我有用:

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