一次刷新多个Web浏览器



我正在以编程方式将web浏览器添加到选项卡页面,并将名称增加一(WebBrowser1、WebBrowser2等(

我希望能够在点击按钮时一次刷新所有浏览器。

我试过循环浏览控件并调用WebBrowsers来刷新它们,但运气不佳。我也读过关于将WebBrowser添加到数组中,然后使用该数组刷新它们的文章,但我不太确定如何做到这一点。以下是我将web浏览器添加到选项卡页面的代码:

Dim newTab As TabPage = New TabPage With {.Text = Path.GetFileName(HTMLReportFile)}
Dim wb As WebBrowser = New WebBrowser With {.Name = "WebBrowser" & (TabControl2.TabPages.Count + 1), .Location = New Point(3, 3), .Width = 725, .Height = 496}
newTab.Controls.Add(wb)
wb.Navigate(HTMLReportFile)
TabControl2.Controls.Add(newTab)

我知道有一个简单的解决方案,但我被难住了。提前感谢您的协助。

我同意Jimi的观点,将所有内容打包到List(Of WebBrowser(中会让生活变得更简单。

代码应该是这样的:

Dim wbTabs As New List(Of WebBrowser)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim newTab As TabPage = New TabPage With {.Text = "FileName"}
Dim wb As WebBrowser = New WebBrowser With {.Name = "WebBrowser" & (TabControl1.TabPages.Count + 1), .Location = New Point(3, 3), .Width = 725, .Height = 496}
wbTabs.Add(wb)
newTab.Controls.Add(wb)
wb.Navigate("http://www.google.com")
TabControl1.Controls.Add(newTab)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
For Each WB In wbTabs
WB.Refresh()
Next
End Sub

无论出于何种原因,如果真的不想将它们包装到列表中,您可以使用以下方法循环浏览每个选项卡,找到WebBrowser元素并相应地刷新它们:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
For Each tPage As TabPage In TabControl1.TabPages
For Each Cntrl As Control In tPage.Controls
If Cntrl.GetType Is GetType(WebBrowser) Then
Cntrl.Refresh()
End If
Next
Next
End Sub

最新更新