Foxtable(狐表)用户栏目专家坐堂 → [求助]切换页面跳动的问题


  共有3186人关注过本帖树形打印复制链接

主题:[求助]切换页面跳动的问题

帅哥哟,离线,有人找我吗?
花开的声音
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8418 威望:0 精华:0 注册:2012/10/29 20:09:00
[求助]切换页面跳动的问题  发帖心情 Post By:2014/5/1 0:07:00 [只看该作者]

在TabControl 控件的两个页面分别放置panel1和panel2两个控件,用下面的代码为两个控件的背景图片,在TabControl的两个页面之间切换时,图片抖动比较严重,有没有什么好的办法解决。
 
e.Form.Controls("panel1").BaseControl.BackGroundImage = getImage(projectPath & "Images\第一面.bmp")
e.form.controls("panel1").basecontrol.BackgroundImageLayout = Windows.Forms.ImageLayout.Stretch
e.Form.Controls("panel2").BaseControl.BackGroundImage = getImage(projectPath & "Images\第三面.bmp")
e.form.controls("panel2").basecontrol.BackgroundImageLayout = Windows.Forms.ImageLayout.Stretch

 回到顶部
帅哥哟,离线,有人找我吗?
ybil
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2014/5/1 8:18:00 [只看该作者]

试试加入停止绘制  及  恢复绘制代码

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/5/1 8:47:00 [只看该作者]

外甥打灯笼──照旧(舅)。

 回到顶部
帅哥哟,离线,有人找我吗?
花开的声音
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8418 威望:0 精华:0 注册:2012/10/29 20:09:00
  发帖心情 Post By:2014/5/1 9:11:00 [只看该作者]

谢谢那么早回复,就是原来那个已经处理好的窗口中,右上放底图的页面控件里面,再套加了一个页面,这次放的底图比原来的大,在切换页面时底图跳动很明显,可能以前那个也跳,但底图小可能没有那么明显。我先弄下看,不行再请教了。

 回到顶部
帅哥哟,离线,有人找我吗?
逛逛
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:1693 积分:12117 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/5/1 11:04:00 [只看该作者]

加载窗口(AfterLoad)时加上

 

 

Dim p1 As WinForm.Panel = e.Form.Controls("Panel1")
Dim p2 As WinForm.Panel = e.Form.Controls("Panel2")
p1.baseControl.Gettype().GetProperty("DoubleBuffered",  Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic).SetValue(p1.baseControl,True,Nothing)
p2.baseControl.Gettype().GetProperty("DoubleBuffered",  Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic).SetValue(p2.baseControl,True,Nothing)

 

'**使用双缓存

试试


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/5/1 11:52:00 [只看该作者]

以下是引用逛逛在2014-5-1 11:04:00的发言:

加载窗口(AfterLoad)时加上

 

 

Dim p1 As WinForm.Panel = e.Form.Controls("Panel1")
Dim p2 As WinForm.Panel = e.Form.Controls("Panel2")
p1.baseControl.Gettype().GetProperty("DoubleBuffered",  Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic).SetValue(p1.baseControl,True,Nothing)
p2.baseControl.Gettype().GetProperty("DoubleBuffered",  Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic).SetValue(p2.baseControl,True,Nothing)

 

'**使用双缓存

试试

可行性报告,结论如下:

 

效益可观。


 回到顶部
帅哥哟,离线,有人找我吗?
花开的声音
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8418 威望:0 精华:0 注册:2012/10/29 20:09:00
  发帖心情 Post By:2014/5/1 22:33:00 [只看该作者]

按5楼的试了,效果没得说的呵,非常不错。

 回到顶部