我在一个picturebox上面要画张图,具体几张用for循环实现的,但是每循环一次上一次的bitmap就被覆盖掉了,不知道怎么才能把几个bitmap放在一起,求指教,大致代码如下
Graphics   g;
Bitmap rusult;
 for (int i = 0; i < 5; i++)//循环画五张图
   { 
      DrawGraph.drawXR drawXR = new DrawGraph.drawXR();//画图的类,返回一个bitmap
      result= drawXR.drawBitmap(pic);//画图的类,返回一个bitmap
      g = CreateGraphics();
      g.DrawImage(result, x,y);//此处每次循环的x值和y值是不一样的    }
 pic.BackgroundImage = result;  //pic为一个pictureBox,此处把result作为pic的背景
问题: 就是循环的结果是只显示最后一张bitmap了,不能把每次循环得到的bitmap并在一起

解决方案 »

  1.   

    DrawGraph.drawXR drawXR = new DrawGraph.drawXR();放在循环外面。
      

  2.   

    g = CreateGraphics();放在循环外面
      

  3.   

    g = CreateGraphics();放在循环外面。
      

  4.   

    g = CreateGraphics() 放循环外面还是同样的问题。也是只会有最后一次循环的图片,就是没有把几个照片合在一起,已经试过了,确实不行
      

  5.   


    g = CreateGraphics() 放循环外面还是同样的问题。也是只会有最后一次循环的图片,就是没有把几个照片合在一起,已经试过了,确实不行。各位还有没有什么好的方法啊?
      

  6.   

    g = CreateGraphics() 放循环外面还是同样的问题。也是只会有最后一次循环的图片,就是没有把几个照片合在一起,已经试过了,确实不行。各位还有没有什么好的方法啊?
      

  7.   

    先画背景 g.DrawImage(pic.BackgroundImage,0,0);
      

  8.   

    Graphics g;
    Bitmap rusult = (Bitmap)pic.BackgroundImage;for(int i = 0;i<5;i++)
    {
       DrawGraph.drawXR drawXR = new DrawGraph.drawXR();//画图的类,返回一个bitmap
           result= drawXR.drawBitmap(pic);//画图的类,返回一个bitmap
       g=Graphics.FromImage(rusult);
    g.DrawImage(rusult,x,y);
    g.Dispose();
    }
    pic.BackgroundImage = rusult;
    这样就行了,你之前的只是一张一张图象显示而已,当然不会合并了。
      

  9.   


    Bitmap bmp = new Bitmap(pic.Width,pic.Height);
    Graphics g = Graphics.FromImage(bmp);
    DrawGraph.drawXR drawXR = new DrawGraph.drawXR();//画图的类,返回一个bitmap
    for(int i=0;i<5;i++)
    {
       Image img = drawXR.drawBitmap(pic); //断点调试下,看看图片对不对
       g.DrawImage(img,x,y);
    }
    g= null;
    pic.Bg = bmp;