为每个Web浏览器控件

时间:2015-08-06 03:38:54

标签: vb.net winforms

基本上我已经绘制了一堆webbrowser控件,我想将这几行代码添加到每个webbrowser控件中,而不必为每个webbrowser的webbrowser_navigating(sender,e)事件中的每一个执行此操作

While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While

我的最终目标是,我不希望浏览器在每次无法加载页面时或者当Web服务器永远响应时都会导致表单挂起。

我认为这与可继承的覆盖有关?但是我对这些没有经验,但是如果是这样的话,我就会开始看到它们的使用

谢谢!

1 个答案:

答案 0 :(得分:0)

从WebBrowser Control继承并覆盖OnNavigating方法。

Public Class MyWebBrowser
    Inherits WebBrowser

    Protected Overrides Sub OnNavigating(e As System.Windows.Forms.WebBrowserNavigatingEventArgs)
        MyBase.OnNavigating(e)
        While ReadyState <> WebBrowserReadyState.Complete
            Application.DoEvents()
        End While
    End Sub

End Class

编译项目,MyWebBrowser控件将出现在工具箱中,使用它代替WebBrowser Control。 这是您愿意实现的目标,但使用Application.DoEvents()方法并不是一个好习惯。有许多可用的异步方法,您应该使用它们。