WebBrowser.Navigate问题。(100)

  • 主题发起人 主题发起人 CoolRzs
  • 开始时间 开始时间
C

CoolRzs

Unregistered / Unconfirmed
GUEST, unregistred user!
当webbrowser在pagecontrol 的第二页,(第一页是当前页),我调用navagatr2(url)时,webbrowser显然并不工作,一般只载入30%的内容,必须手工的切换到pagecontrol的第二页,哪怕是0.1秒,又切换回第一页, webbrowser就会继续工作,直至下载完毕.这个问题如何解决?如果问题没有说清楚,我还有一个例子,可惜这里不能传附件,哪位朋友能帮我看看?
 
刚刚找到的资料=====================================================BUG: DocumentComplete 无法不激发 WebBrowser 不可见时症状 当它的 Visible 属性设置为"False"时,WebBrowser 控件 (Shdocvw.dll) 不会触发该的 DocumentComplete 事件...当它的 Visible 属性设置为"False"时,WebBrowser 控件 (Shdocvw.dll) 不会触发该的 DocumentComplete 事件,并且文档无法到达 READYSTATE_COMPLETE 状态。 解决方案 应用程序依赖于隐藏的 WebBrowser 控件的最佳解决方法是要放置控件,让它在绘制其用户界面关闭其容器窗口。 为此,请将控件的 Left 属性设置为等于其...应用程序依赖于隐藏的 WebBrowser 控件的最佳解决方法是要放置控件,让它在绘制其用户界面关闭其容器窗口。 为此,请将控件的 Left 属性设置为等于其 宽度 属性的负值。 在 multimonitor 的情况下负值可能有效的屏幕的坐标因此 Left 属性值必须设置为返回调用 EnumDisplayMonitors() 方法值之外的坐标。 此外,如果不需要 WebBrowser 用户界面 WinInet API 可以提供许多相同的功能。 状态 Microsoft 已确认这是在本文开头列出的 Microsoft 产品。Microsoft 已确认这是在本文开头列出的 Microsoft 产品。 更多信息 重现问题的步骤 Visual Basic 中,请启动新的标准 EXE 项目。 默认情况下会创建 Form 1。 将 Microsoft Internet 控件...重现问题的步骤Visual Basic 中,请启动新的标准 EXE 项目。 默认情况下会创建 Form 1。将 Microsoft Internet 控件 (Shdocvw.dll) 添加到项目。 因此,从 项目 菜单单击 组件 。将下列控件添加到 Form 1: Object Name Caption ------------------------------------------------------------------- WebBrowser WebBrowser1 CheckBox chkVisible Visible (value of 1 - checked) CommandButton cmdNavigate Navigate CommandButton cmdReadyState ReadyState将以下代码复制到 Form 1 的 代码 窗口: Private Sub cmdNavigate_Click() WebBrowser1.Navigate2 "http://msdn.microsoft.com/workshop" End Sub Private Sub cmdReadyState_Click() MsgBox WebBrowser1.Document.ReadyState End Sub Private Sub chkVisible_Click() WebBrowser1.Visible = chkVisible.Value End Sub Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) MsgBox "DocumentComplete!" End Sub Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant) MsgBox "NavigateComplete2!" End Sub 从 运行 菜单单击 开始 ,或按 F 5 键以启动该程序。单击 浏览 按钮。 请注意 NavigateComplete2 和 DocumentComplete 事件会触发。清除要隐藏 WebBrowser 控件 Visible 复选框。 请再次单击 导航 按钮。 请注意引发只是该 NavigateComplete2 事件。 使用 ReadyState 按钮,验证控件的 ReadyState 已达到 READYSTATE_COMPLETE (4)。再次单击 导航 时将出现相同情况。 Visible 复选框选择,再次使 WebBrowser 控件可见时,被只会激发 DocumentComplete 事件。 可以通过 chkVisible_Click 处理程序替换为下面的代码来更正此问题: Private Sub chkVisible_Click() If chkVisible.Value Then WebBrowser1.Left = 120 ' or whatever the normal Left value is Else WebBrowser1.Left = -WebBrowser1.Width End If End Sub
 
后退
顶部