我的程序就是在pictureBox里画画,最小化后画的东西没有了,程序如下:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace TestBoard
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        bool pen = true;
        bool f;
        int x, y;
        Graphics g;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            if (pen)
            {
                f = false;
            }
        }        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (pen)
            {
                if (f == true)
                {
                    Graphics gx = pictureBox1.CreateGraphics();
                    gx.DrawLine(new Pen(Color.Black), x, y, e.X, e.Y);
                    x = e.X;
                    y = e.Y;
                }
            }
        }        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (pen)
            {
                f = true;
                x = e.X;
                y = e.Y;            }
        }
    }
}求高手改我的程序让它实现吧,就是怎么重绘

解决方案 »

  1.   


    最小化后 屏幕不再保存窗口图形的   重新打开后 需要刷新重绘 你用鼠标原先绘的图没了 
    解决:
    先保存绘图数据
    接收pictureBox控件的Paint事件
    在事件处理方法中  重新绘图
      

  2.   

    其实我知道是这样的原理,但是我如何在pictureBox控件的Paint事件里写重绘代码,我的绘画要好几个参数的,求代码解释
      

  3.   

      Graphics gx = pictureBox1.CreateGraphics();
                        gx.DrawLine(new Pen(Color.Black), x, y, e.X, e.Y);要卸载onpaint事件里
      

  4.   

    每画一个点,把他存在一个集合里,然后在Paint事件中再画出来就好了.
      

  5.   

    写在onpaint事件里,那参数怎么传呢?
      

  6.   

    这个说的对,你每次都要在paint中进行重绘的。如果画得多也要记在内存里面。
    如果你觉得内存有问题,可以写在一个文件里面,作为临时的记录。