WebBrowser1.Navigate App.Path & "\query.html"
WebBrowser1.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DONTPROMPTUSER我用webbrowser控件来实现打印功能,运行的时候,有一个错误:
对象'ExecWB'的方法'IWebBrowser2'失败然后我进入调试,接着按 运行 ,却没有什么错误,同样可以预览,请问这是为什么,怎样能不让这个错误弹出?能从根本上解决更好

解决方案 »

  1.   

    Navigate是异步进行的,就是说网页还没打开就ExecWB了,用WebBrowser1的某个事件进行ExecWB吧。
      

  2.   

    如果楼上说的正确,代码就要写到DocumentComplete事件里了
      

  3.   

    哦,明白了,谢谢,我把第二行代码放在
    Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)事件里面就好了,可是又有新问题了,我把工程生成exe 文件以后,在别的机器上运行,有个错误:
    运行时错误
    Automation错误请问这是为什么?
      

  4.   

    可能使对方使用的IE版本的问题,如果使IE5及以下版本不会引发NavigateComplete2事件而是NavigateComplete事件,你可以这样编码:WebBrowser1.Navigate App.Path & "\query.html"
    While Webbrowser1.Busy
        Doevents
    Wend
    WebBrowser1.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DONTPROMPTUSER
      

  5.   

    WebBrowser1.Navigate App.Path & "\query.html"
    在form_load事件里,
    WebBrowser1.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DONTPROMPTUSER
    在Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
    事件里,我把
    While Webbrowser1.Busy
        Doevents
    Wend也放在form_load 事件里,运行的时候还是那个错误
    While Webbrowser1.Busy
        Doevents
    Wend
    究竟应该放在哪里呢?
      

  6.   

    再说webbrowser控件好像没有NavigateComplete这个事件吧?
      

  7.   

    MSDN:This event replaces the NavigateComplete and FrameNavigateComplete events, which should no longer be used. Microsoft® Internet Explorer 4.0 and Internet Explorer 5 continue to fire the NavigateComplete and FrameNavigateComplete events for compatibility with Internet Explorer 3.0.
      

  8.   

    而且OLECMDID_PRINTPREVIEW方法只对IE 5.5及以后的版本有效,之前的版本会报错的。