我在pannel每次鼠标click就画个圆,可是最小化form或者被其他页面盖住,在显示这个form时候图就看不见了,但还是存在的,请问是什么原因啊??
private void pGame_MouseClick(object sender, MouseEventArgs e)
{
   Graphics g = this.pGame.CreateGraphics();
   g.DrawImage(Resources.blue, x1, y1, 36, 36);
}

解决方案 »

  1.   

    因为没刷新视图。
    在 OnUpdate 事件中必须重画
      

  2.   

    Paint事件里面重新绘制
    先画到 bitmap中,在paint事件中,画bitmap
      

  3.   

    Point p = new Point();private void Form1_MouseClick(object sender, MouseEventArgs e)
    {
        p = e.Location;
        this.Invalidate();
    }private void Form1_Paint(object sender, PaintEventArgs e)
    {
        e.Graphics.DrawImage(Resource.blue, p.X, p.Y, 36, 36);
    }
      

  4.   

    在你mouse_up事件里吧圆都画到bitmap上,在paint事件里 去e.graphic.drawiamge(bitmap,0,0)
      

  5.   

    1,声明一矩形数组
    2,private void pGame_MouseClick(object sender, MouseEventArgs e)
    {
      将鼠标点击要画的圆坐标放入矩形数组
    }
    3
    protected override void OnPaint(PaintEventArgs e)
    {
       循环数据画圆
       (利用双缓存技术或者楼上说的先在图片上图再贴到窗体上)
    }
      

  6.   

    正解。点击事件只绘制一次,当窗体最小化又恢复时将进行重绘。在Paint事件里才能保证显示