基本上我已经绘制了一堆webbrowser控件,我想将这几行代码添加到每个webbrowser控件中,而不必为每个webbrowser的webbrowser_navigating(sender,e)事件中的每一个执行此操作
While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While
我的最终目标是,我不希望浏览器在每次无法加载页面时或者当Web服务器永远响应时都会导致表单挂起。
我认为这与可继承的覆盖有关?但是我对这些没有经验,但是如果是这样的话,我就会开始看到它们的使用
谢谢!
答案 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()方法并不是一个好习惯。有许多可用的异步方法,您应该使用它们。