我的窗体上有个自定义的panel.。他继承了panel类,在其构造函数中用了setstyle(),双缓冲技术,然后在panel上绘制图,也用了双缓冲技术。就是把需要的绘制的东西。都先绘制到一个bitmap中。然后一次显示在panel上。
但是我现在出了个问题。就是我动态的改变panel 的大小,图象也随着改变大小。但是貌似图象的大小改变有点阶梯状的感觉。跳跃的改变大小!!
其中动态改变大小的时候用的是一个timer。不管把timer的间隔弄到多少。都有跳跃的感觉。
我是通过改变panel的location和size来改变的,panel的大小和位置改变了。图象就在改变后的大小上重新绘制!!!小弟实在不知道该怎么办了。help!!猜测可能是panel大小改变的时候要重画,然后我又在他上边画了一遍!!
有没有可能阻止他大小改变的时候不重画。等我画的时候一起重画呢?

解决方案 »

  1.   

    你是怎么把bitmap 显示在panel上的?
    关键应该在这个自适应的属性上
      

  2.   

    当panel的大小和位置变化后。我又新建立了一个panel改变后大小的bitmap。然后把需要绘制的都绘制到bitmap上。然后又画到panel上的
      

  3.   

    不用怎么麻烦,把backGroundImage =bitmap
    backGroundImageLayout=zoom这样不就画上了?
    改变的时候backGroundImage =null ,
    或backGroundImageLayout=None
    然后再改回来要是不想怎么做
    SuspendLayout 和 ResumeLayout  这两个好像可以挂起 layout事件
      

  4.   

    SuspendLayout 和 ResumeLayout  这两个好像可以挂起 layout事件
    这2个怎么用?
      

  5.   

    为什么在c#中同时设置一个panel的location和size。而在panel上的图象会抖动闪烁呢。我已经用了双缓冲了呀
    如果只是移动location 或是改变size。就不会有上边的情况呢。这个是为什么。是因为panel画了2次的原因么?