为什么WebBrowser在加载网页时主窗体会闪一下(100分)

  • 主题发起人 主题发起人 rainbar
  • 开始时间 开始时间
R

rainbar

Unregistered / Unconfirmed
GUEST, unregistred user!
我动态在窗体上创建了一个WEBBROWSER,再让WEBBROWSER打开一网站,比如www.163.com吧,但每次在打开的网站要显示出来之前,窗体就会闪一下,此时窗体上所有东西都不见了,只有WEBBROWSER的位置是一块白色的。这样大大影响了程序的美观,请问哪位好心人能告诉我为什么啊?怎么解决呢?
 
你的问题不大明白,是不是你代码有什么不对呢,要不你加我QQ吧604821755
 
其实我不用动态生成WEBBROWSER的方法,在全部打开网页之前主窗体也要闪一下,所有控件都没有了,然后一秒左右又好了,这时网页就全部打开了
 
在包含WebBrower的窗体的OnCreate事件中加入DoubleBuffer := True试试看
 
谢谢楼上的朋友,试了,不行,还是有这样的情况的!
是这样的,我的主窗体就是一个一般的TForm,我用了skinpack的skinform,skinform上面有背景图片,有三个skinbutton,还有就是动态的创建了一个WebBrowser。当我点击其中一个skinbutton的时候,就动态创建这个WebBrowser,并且打开指定的网站。而且还有一点就是,我在点击了那个SKINBUTTON后,WEBBROWSER并不是一开始就出现在我指定的位置,而是有一个从主窗体的左上角移向我指定位置的过程,WEBBROWSER创建好后,在指定的网站打开前,整个窗体就会全部组件都没有了,然后约一秒钟后(网站速度快的话用不了一秒)整个仿窗体恢复正常,网站也打开了。但是这个过程让整个程序看起来很不美观。
 
那就截获Window的窗口刷新消息,等待页面加载完毕后再释放就可以了.不过这个方法也有个弊端,就是窗口可能产生暂时的假无响应现象(因为截获了Window刷新而引起的)
 
搞定了。谢谢Johnny_du,我把我的SKINFORM的DoubleBuffered := True设置了,结果就正常了。谢谢!
但不过还有一点就是为什么我动态创建的WEBBROWSER并不是创建好过后就出现在我指定的位置,运行起来看上去一有个从主窗体左上角移向我指定位置的过程呢?
 
可能和控件的默认创建位置有关,这个要看控件的源代码了.建议楼主先创建控件后在显示窗体,就不会出现你描述的现象了.
 
不行啊。因为打开网站是要启动好窗体后,读取相应的数值后,动态决定访问哪个网站的。能不能再想想办法啊?
 
后退
顶部