用C#写了个俄罗斯方块,图像放在panel 中,在panel中绘制图,结果图像闪烁,急求解决
private void panel1_Paint(object sender , PaintEventArgs e)
         {// Create image.
            // Bitmap bmp = new Bitmap(240, 360);
           //  PaintEventArgs e = bmp.CreateGraphics();              
             this.Change();
             if (ChangTiaoHent.y == 17)
             {
             }
             if (Xianshi[0, 6] == true)
             {
                 Init();
             }
             if (Yunxing ==true)
             {
                  for (int i = 0; i < 18; i++)
                     {
                         for (int j = 0; j < 12; j++)
                         {
                             if (Xianshi[i, j] == true )
                             {
                                 Image newImage = Image.FromFile("KK.png");
                                 // Create Point for upper-left corner of image.
                                 Point ulCorner = new Point(j*20 , i*20);
                                 // Draw image to screen.
                                 e.Graphics.DrawImage(newImage, ulCorner);
                                 Console.Write(i.ToString() + ";" + j.ToString());
                             }
                         }
                     }
                  if (Yunxing == true && Xing == 1)
                  {
                      if (ChangTiaoHent.y == 17)
                      {
                          Image newImage = Image.FromFile("KK.png"); Point ulCorner = new Point(100, 100);
                          e.Graphics.DrawImage(newImage, new Point(20 * ChangTiaoHent.x, 20 * ChangTiaoHent.y));
                          Xianshi[ChangTiaoHent.y, ChangTiaoHent.x] = true;
                          if (ChangTiaoHent.y >= 1) e.Graphics.DrawImage(newImage, new Point(20 * ChangTiaoHent.x, 20 * (ChangTiaoHent.y - 1)));
                          if (ChangTiaoHent.y >= 2) e.Graphics.DrawImage(newImage, new Point(20 * ChangTiaoHent.x, 20 * (ChangTiaoHent.y - 2)));
                          if (ChangTiaoHent.y >= 3) e.Graphics.DrawImage(newImage, new Point(20 * ChangTiaoHent.x, 20 * (ChangTiaoHent.y - 3)));
                          if (ChangTiaoHent.y >= 1) Xianshi[ChangTiaoHent.y - 1, ChangTiaoHent.x] = true;
                          if (ChangTiaoHent.y >= 2) Xianshi[ChangTiaoHent.y - 2, ChangTiaoHent.x] = true;
                          if (ChangTiaoHent.y >= 3) Xianshi[ChangTiaoHent.y - 3, ChangTiaoHent.x] = true; this.ChongG();
                      }
                      else
                      {
                          if ((ChangTiaoHent.y <= 16) && (!Xianshi[ChangTiaoHent.y + 1, ChangTiaoHent.x] == true))
                          {
                              Image newImage = Image.FromFile("KK.png"); Point ulCorner = new Point(100, 100);
                              if (ChangTiaoHent.y >= 0) e.Graphics.DrawImage(newImage, new Point(20 * ChangTiaoHent.x, 20 * ChangTiaoHent.y));
                              if (ChangTiaoHent.y >= 1) e.Graphics.DrawImage(newImage, new Point(20 * (ChangTiaoHent.x), 20 * (ChangTiaoHent.y - 1)));
                              if (ChangTiaoHent.y >= 2) e.Graphics.DrawImage(newImage, new Point(20 * (ChangTiaoHent.x), 20 * (ChangTiaoHent.y - 2)));
                              if (ChangTiaoHent.y >= 3) e.Graphics.DrawImage(newImage, n