日期:2014-05-19  浏览次数:20834 次

为什么画的矩形闪烁,如何解决
private   void   panel1_Paint(object   sender,   PaintEventArgs   e)
                {

                        Bitmap   bmp   =   new   Bitmap(300,   450);
                        Graphics   gra   =   Graphics.FromImage(bmp);
                        //   Graphics   gra   =   this.panel1.CreateGraphics();
                        for   (int   i   =   0;   i   <   rectangles.Count;   i++)
                        {
                                gra.DrawRectangle(new   Pen(Color.Black,   1),   rectangles[i]);
                        }
                        this.panel1.CreateGraphics().DrawImage(bmp,   0,   0);
                 
                       
                }
    private   void   timer1_Tick(object   sender,   EventArgs   e)
                {           j++;
                                  y++;  
                                          Rectangle   rec   =   new   Rectangle(x,   y,   30,   30);
                        rectangles.Add(rec);
                        if   (rectangles.Count   >   j   +   1)
                        {
                                rectangles.RemoveAt(j);
                        }

 
                                                this.panel1.Invalidate();
                             

                }

如何解决?

------解决方案--------------------
private void panel1_Paint(object sender, PaintEventArgs e)
///
不要用这个事件
重写OnPaint方法就可以的
C# 游戏基本是用重写的
不用调Invalidate(); 就会刷新