貌似是抖动的问题!!!

shanying_0 2008-10-30 01:35:00
我的窗体上有个自定义的panel.。他继承了panel类,在其构造函数中用了setstyle(),双缓冲技术,然后在panel上绘制图,也用了双缓冲技术。就是把需要的绘制的东西。都先绘制到一个bitmap中。然后一次显示在panel上。
但是我现在出了个问题。就是我动态的改变panel 的大小,图象也随着改变大小。但是貌似图象的大小改变有点阶梯状的感觉。跳跃的改变大小!!
其中动态改变大小的时候用的是一个timer。不管把timer的间隔弄到多少。都有跳跃的感觉。
我是通过改变panel的location和size来改变的,panel的大小和位置改变了。图象就在改变后的大小上重新绘制!!!

小弟实在不知道该怎么办了。help!!

猜测可能是panel大小改变的时候要重画,然后我又在他上边画了一遍!!
有没有可能阻止他大小改变的时候不重画。等我画的时候一起重画呢?
...全文
135 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Longgreenlee 2008-11-03
  • 打赏
  • 举报
回复
内存太小了?
pvgyetg 2008-11-03
  • 打赏
  • 举报
回复
up
starts_2000 2008-11-03
  • 打赏
  • 举报
回复
paulin 2008-11-03
  • 打赏
  • 举报
回复
恭喜解决
jf
shanying_0 2008-11-03
  • 打赏
  • 举报
回复
顶着有分。嘎嘎。我已经解决了。散分了
shanying_0 2008-11-02
  • 打赏
  • 举报
回复
为什么在c#中同时设置一个panel的location和size。而在panel上的图象会抖动闪烁呢。我已经用了双缓冲了呀
如果只是移动location 或是改变size。就不会有上边的情况呢。这个是为什么。是因为panel画了2次的原因么?
abcyzq 2008-10-31
  • 打赏
  • 举报
回复
顶!
shanying_0 2008-10-31
  • 打赏
  • 举报
回复
顶~~~~~~~~~
shanying_0 2008-10-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cancerser 的回复:]
不用怎么麻烦,把backGroundImage =bitmap
backGroundImageLayout=zoom

这样不就画上了?
改变的时候backGroundImage =null ,
或backGroundImageLayout=None
然后再改回来

要是不想怎么做
SuspendLayout 和 ResumeLayout 这两个好像可以挂起 layout事件
[/Quote]

还是抖!!!
shanying_0 2008-10-30
  • 打赏
  • 举报
回复
SuspendLayout 和 ResumeLayout 这两个好像可以挂起 layout事件
这2个怎么用?
cancerser 2008-10-30
  • 打赏
  • 举报
回复
不用怎么麻烦,把backGroundImage =bitmap
backGroundImageLayout=zoom

这样不就画上了?
改变的时候backGroundImage =null ,
或backGroundImageLayout=None
然后再改回来

要是不想怎么做
SuspendLayout 和 ResumeLayout 这两个好像可以挂起 layout事件
shanying_0 2008-10-30
  • 打赏
  • 举报
回复
当panel的大小和位置变化后。我又新建立了一个panel改变后大小的bitmap。然后把需要绘制的都绘制到bitmap上。然后又画到panel上的
cancerser 2008-10-30
  • 打赏
  • 举报
回复
你是怎么把bitmap 显示在panel上的?
关键应该在这个自适应的属性上

110,571

社区成员

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

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

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