我在窗体上画了一张图,用的是paint,但当要在这个图片上再画其他图片上时,画是画上了的,但一晃下窗体就没有了的,请问怎末解决这个问题...

解决方案 »

  1.   

    如果是窗体重绘就没有了,那说明你的绘制代码需要放入Paint事件处理方法中。
      

  2.   

    但是我画第一个图的时候可以放在paint中,画在这个图上面的也可以放在paint中,但当我在第一个图上面画第三个图的时候,第二个图就会没有了的,不能保存刚才已经画的结果...
      

  3.   

    在page_load定义面版移动时发生事件,让面版重新加载绘图函数。
      

  4.   

    paint每次重绘把你第二次的图覆盖了...
    把所有画图的全放在paint里面
      

  5.   

    protected override void OnPaint(PaintEventArgs e)
    {
    base.PnPaint(e);
    Graphics dc = e.Graphics;
    Pen bluePen = new Pen(Color.Blue,3);
    dc.DrawRectangle(bluePen,0,0,50,50);
    Pen redPen = new Pen(Color.Red,2);
    dc.DrawEllipse(redPen,0,5o,80,60);
    }
      

  6.   

    我操, 10樓與 11樓,非要給出代碼才行呀真正的做法是把圖先把到一個內存 Bitmap 上,先在內存裡畫,在 Paint 事件裡,只是把內存 Bitmap 畫出來就行了。這就叫雙緩沖如代碼Bitmap m_MemBmp = new Bitmap(your_width, your_height);
    Graphics m_MemG = Graphics.FromImage(m_MemBmp);然後要畫時,用 m_MemG 來畫。
    在 OnPaint 事件裡,把 m_MemBmp 畫出來就行了e.Graphics.DrawImage(m_MemBmp);
    這樣的好象是對復雜圖形,不會閃爍這就叫雙緩沖