如下面的初始化代码所示,在界面上添加了一个pictureBox的控件,想在上面初始化画图,运行不显示所画的图片。
        public Graphics g1;
        public Form1()
        {
            InitializeComponent();            g1 = pictureBox1.CreateGraphics();
            g1.DrawRectangle(new Pen(Color.Red), 10, 10, 20, 20);
            Pen p = new Pen(Color.Red, 2);//定义了一个蓝色,宽度为的画笔
            g1.DrawLine(p, 10, 10, 100, 100);//在画板上画直线,起始坐标为(10,10),终点坐标为(100,100)
            g1.DrawRectangle(p, 10, 10, 100, 100);//在画板上画矩形,起始坐标为(10,10),宽为,高为
            g1.DrawEllipse(p, 10, 10, 100, 100);//在画板上画椭圆,起始坐标为(10,10),外接矩形的宽为,高为
        }

解决方案 »

  1.   

    没有加到 Controls 中去,是不会显示的
      

  2.   

    请教,怎么加到Controls中去?
      

  3.   

    我在下面代码中增加了一句,还是不显示图画,我看有人是新建了pictureBox,我这个是设计器中就添加了pictureBox控件的,名字就是pictureBox1        public Graphics g1;
            public Form1()
            {
                InitializeComponent();            this.Controls.Add(pictureBox1);
                g1 = pictureBox1.CreateGraphics();
                g1.DrawRectangle(new Pen(Color.Red), 10, 10, 20, 20);
                Pen p = new Pen(Color.Red, 2);//定义了一个蓝色,宽度为的画笔
                g1.DrawLine(p, 10, 10, 100, 100);//在画板上画直线,起始坐标为(10,10),终点坐标为(100,100)
                g1.DrawRectangle(p, 10, 10, 100, 100);//在画板上画矩形,起始坐标为(10,10),宽为,高为
                g1.DrawEllipse(p, 10, 10, 100, 100);//在画板上画椭圆,起始坐标为(10,10),外接矩形的宽为,高为            //pictureBox1.Show();
                //        }
      

  4.   

    加上下面的代码,我把鼠标移动到pictureBox1的范围内,就马上画出了相应的图片        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
            {
                g1 = pictureBox1.CreateGraphics();
                g1.DrawRectangle(new Pen(Color.Red), 10, 10, 20, 20);
                Pen p = new Pen(Color.Red, 2);//定义了一个蓝色,宽度为的画笔
                g1.DrawLine(p, 10, 10, 100, 100);//在画板上画直线,起始坐标为(10,10),终点坐标为(100,100)
                g1.DrawRectangle(p, 10, 10, 100, 100);//在画板上画矩形,起始坐标为(10,10),宽为,高为
                g1.DrawEllipse(p, 10, 10, 100, 100);//在画板上画椭圆,起始坐标为(10,10),外接矩形的宽为,高为            //pictureBox1.Show();        }
      

  5.   

    放到 paint 事件里面去吧
      

  6.   

    是不是在之后的 form_load 事件中 又被默认画面给覆盖了
      

  7.   

    (逻辑上)初始化窗口,放到 form_Load 中啊,怎么会放到对象的实例化方法中??