40分求教! 镜头加载完成的判断方法!
40分求教!!!★★★★★★ 画面加载完成的判断方法!★★★
WINFORM的程序
窗体上有很多控件(包括用户控件),里面有GRID,图表等内容.
这是一个改造的程序.它原本取数据显示在控件里的处理是写在SHOWN事件里.这个不能改.
现在需要把这个画面SHOW出来后,将画面上内容打印(按大窗体的大小屏幕截图),然后再CLOSE掉它.
问题是:截图时,画面上很多东西还没显示完全,像正在绘制的程度就截屏打印了.
怎样判断画面上的内容都显示完全 这个时候再截屏打印..
这个讨论
Triggering an event after a Winform layout is complete
mplete
在FormActived或者最后加载完的程序结束后,设置一个bool值,再根据这个值去截图。
这是一个改造的程序.它原本取数据显示在控件里的处理是写在SHOWN事件里.这个不能改.
所以我的打印是放在SHOWN事件的最后.
楼上说的在ACTIVED里做标记 ACTIVED事件比SHOWN还要早啊.那时画面还啥都没有.
"加载完的程序结束",这个就是在SHOWN里啊,截屏打印就是放在"加载完的程序结束"后啊..
还有,你说的设个BOOL值,根据这个值去打,问题是"根据这个值去打"的位置在哪
看看这个讨论能不能帮你:
SHOWN事件一般是最后触发的,可以考虑停顿一个时间再将画面上内容打印
对方程序不能修改基本没有办法,加上延迟看看吧。
TO findcaiyzh
正在看这个讨论
TO caozhy
如果把取数据的处理由SHOWN移出来,允许的话,移到哪里能解决呢,移到LOAD里
TO wo8352490123
听顿一个时间总感觉不够精确,,定个3秒吧,它又可能网速慢4秒才出来,有时快呢,1秒不到就出来,也要停3秒
我估计客户对这个停顿方法是不会接受的,这个方法放在最后其他方法都不行才去尝试
看了那个英文的讨论
把Application.DoEvents() 放在取数据后,打印前.
似乎好象可以...再试下看.....
看了那个英文的讨论
把Application.DoEvents() 放在取数据后,打印前.
似乎好象可以...再试下看.....
或者 me.refresh 之后再 Application.DoEvents() 再打印 应该就行了
相关链接