用的Windows.Form.Timer吧?
如果Tick的时间长了,动画跑得慢,如果时间短了,界面会僵住,调节下试试
在重绘的时候可以指定Clip为图片的Rect,不要让整个窗体无效,那样太浪费

解决方案 »

  1.   

    谢谢楼上回答.用的是System.Timers.Timer, 说这个时间准一点."在重绘的时候可以指定Clip为图片的Rect" -- 这个我没用,我是整个窗体重绘的,所有的图片都画一遍,
    影响速度的应该就是这个问题,我也知道,但是就是不知道怎么解决.
      

  2.   

    这个能在说具体点吗? 以前没用过GDI+
      

  3.   

    Graphics ghB = mypb.CreateGraphics();
    ghB.DrawImage(bt, 0, 0, bt.Width, bt.Height);
    ghB.Dispose();
      

  4.   

          Rectangle clip = new Rectangle(1, 2, 3, 4);//里面的值替换为你的图片对应位置
          this.Invalidate(clip);//使指定的矩形无效
          this.Update(); //重绘无效区域
    Invalidate函数只是指定无效区域,并不保证一定会立即重绘,而是由操作系统通知重绘消息时才使用
    所以要用Update通知程序立即重绘无效区域,不要等待
      

  5.   


    另外,声明一个类的全局变量Graphics g;
    在构造函数里对其进行赋值:g=this.CreateGraphics();
    这样在类的任何地方使用都可以了,不用重复声明赋值释放,对速度的提升也是有帮助的
      

  6.   

    .NET窗体问题,用层窗体可以使绘制加速.