首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

为什么画的矩形闪烁,怎么解决

2012-02-12 
为什么画的矩形闪烁,如何解决privatevoidpanel1_Paint(objectsender,PaintEventArgse){BitmapbmpnewBitma

为什么画的矩形闪烁,如何解决
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(); 就会刷新

热点排行