WinForm 用BringToFront切换控件,会闪烁

还不够格啊 2012-08-23 11:22:31
WinForm,不管开启或是关闭双缓冲设置,结果都是闪烁。

WinForm里有多个WebBrowser控件,大小都是填满WinForm,且Visible属性都是true。由一个列表控件控制显示。选中列表控件的某项,对应的WebBrowser会显示出来。使用的是WebBrowser的BringToFront方法。但当执行时,会出现以下效果:

原WebBrowser画面 -> 整个WinForm变白 -> 新的WebBrowser显示出来

其中WinForm变白的过程很明显,造成闪烁。

该如何避免这种闪烁?WebBrowser自己是否有双缓冲机制?
加了WinForm的SuspendLayout()和ResumeLayout()也没有作用。

如果不适用BringToFront方法,还有什么其他方法实现切换?
...全文
254 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2012-08-23
  • 打赏
  • 举报
回复
应该是你切换时,同时对 WebBrowser进行navigate了吧,那样 WebBrowser会先白一下,然后加载新页面
还不够格啊 2012-08-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
怀疑快速重新加载了页面,造成的闪烁。
[/Quote]

没有啊,就是调用BringToFront而已啊。
vioalouyang 2012-08-23
  • 打赏
  • 举报
回复
怀疑快速重新加载了页面,造成的闪烁。
还不够格啊 2012-08-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
应该是你切换时,同时对 WebBrowser进行navigate了吧,那样 WebBrowser会先白一下,然后加载新页面
[/Quote]

WebBrowser都已加载完毕,切换时只是单纯的切换显示,没有加载动作。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧