我写了段代码,结果无法实现        private void Form1_Load(object sender, EventArgs e)
        {
            Label lb = new Label();
            lb.Location = new Point(200, 200);
            lb.Size = new Size(80, 30);
            //lb.BackColor = Color.Tomato;
            this.Controls.Add(lb);
            Graphics g = this.lb.CreateGraphics();
            using (Pen blackPen = new Pen(Color.Black, 1))
            {                g.DrawLine(blackPen, new Point(20, 15), new Point(40, 0));
                g.DrawLine(blackPen, new Point(20, 20), new Point(40, 5));
                g.DrawLine(blackPen, new Point(40, 0), new Point(60, 15));
                g.DrawLine(blackPen, new Point(40, 5), new Point(60, 20));
                g.Dispose();
            }
        }难道g.DrawLine一定要写到onpaint方法里吗?写在onpaint方法里,就只有form改变才能画出直线来,
达不到我要的要求啊!要在form打开的同时,就在label上画线 ,这要怎么搞?
谢谢了。

解决方案 »

  1.   

    Label lb = new Label();
                lb.Location = new Point(400, 200);
                lb.Size = new Size(80, 30);
                //lb.BackColor = Color.Tomato;
                lb.Paint += new PaintEventHandler(lb_Paint);
                this.Controls.Add(lb); void lb_Paint(object sender, PaintEventArgs e)
            {
                Graphics g = e.Graphics;
                using (Pen blackPen = new Pen(Color.Black, 1))
                {                g.DrawLine(blackPen, new Point(20, 15), new Point(40, 0));
                    g.DrawLine(blackPen, new Point(20, 20), new Point(40, 5));
                    g.DrawLine(blackPen, new Point(40, 0), new Point(60, 15));
                    g.DrawLine(blackPen, new Point(40, 5), new Point(60, 20));            }        }  
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  2.   

    void lb_Paint 写在Label的绘制事件
      

  3.   

    from load 事件发生的时候你窗体还没加载完成,,,,这个时候的绘图操作是不会有什么效果的,,最起码别在load事件里面画东西,肯定看不到,,
      

  4.   

    有一个shown事件,,那个是窗体出现的时候发生的事件,,你可以在那里画画试试!!