在按钮的单击事件中            PictureBox picBox = new PictureBox();
            picBox.Width = 260;
            picBox.Height = 80;
            picBox.Left = 20;
            picBox.Top = 20;       
            panel1.Controls.Add(picBox);
           
            Graphics myGrap = picBox.CreateGraphics();
            Pen blackPen = new Pen(Color.Black, 3);
            Point point1 = new Point(100, 100);
            Point point2 = new Point(500, 100);
            myGrap.DrawLine(blackPen, point1, point2);
为什么就显示不出来呢

解决方案 »

  1.   

    不是用PictureBox 画图吧?
                PictureBox picBox = new PictureBox();
                picBox.Width = 260;
                picBox.Height = 80;
                picBox.Left = 20;
                picBox.Top = 20;
                picBox.CreateControl();
                panel1.Controls.Add(picBox);
                picBox.ImageLocation = "http://community.csdn.net/images/csdn.gif";
    正常,表示创建成功了
      

  2.   

    不得行  如果PictureBox 不是动态添加的话              
               Graphics myGrap = picBox.CreateGraphics();
                Pen blackPen = new Pen(Color.Black, 3);
                Point point1 = new Point(100, 100);
                Point point2 = new Point(500, 100);
                myGrap.DrawLine(blackPen, point1, point2);
    就可以显示出数据来,- -!
      

  3.   

    private void button1_Click(object sender, EventArgs e)
            {
                PictureBox picBox = new PictureBox();
                picBox.Width = 260;
                picBox.Height = 80;
                picBox.Left = 20;
                picBox.Top = 20;
                picBox.CreateControl();
                panel1.Controls.Add(picBox);
                picBox.ImageLocation = "http://community.csdn.net/images/csdn.gif";
            }        private void button2_Click(object sender, EventArgs e)
            {
                PictureBox picBox = panel1.Controls[0] as PictureBox;
                Graphics myGrap = picBox.CreateGraphics();
                Pen blackPen = new Pen(Color.Black, 3);
                Point point1 = new Point(1, 20);
                Point point2 = new Point(1, 40);
                myGrap.DrawLine(blackPen, point1, point2);
            }
      

  4.   

    to:rtsp(自命不凡-->专出馊主意) 
       
         - -! 谢谢 这不是我要的效果,要是这样的话用户会有意见!
      

  5.   

    PictureBox picBox = new PictureBox();
                picBox.Width = 260;
                picBox.Height = 80;
                picBox.Left = 0;
                picBox.Top = 0;
                panel1.Controls.Add(picBox);
                panel1.Refresh();
                Graphics myGrap = picBox.CreateGraphics();
                Pen blackPen = new Pen(Color.Black, 3);
                Point point1 = new Point(1, 1);
                Point point2 = new Point(260, 80);
                myGrap.DrawLine(blackPen, point1, point2);
      

  6.   

    参考一下我的代码吧,不过是vb的语法,C#的我也不怎么会写,呵呵Public Class Form1    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim pic As New PictureBox
            With pic
                .Location = New Point(100, 50)
                .Size = New Size(200, 200)
                .BorderStyle = BorderStyle.FixedSingle
            End With
            Me.Controls.Add(pic)
            Dim g As Graphics = Me.GetGraphics(pic)
            g.DrawLine(Pens.Red, New Point(0, 0), New Point(pic.Width, pic.Height))
        End Sub    Function GetGraphics(ByRef pic As PictureBox) As Graphics
            Dim bmp As Bitmap = New Bitmap(pic.Width, pic.Height)
            pic.Image = bmp        Dim g As System.Drawing.Graphics = Graphics.FromImage(bmp)
            Return g
        End FunctionEnd Class
      

  7.   

    to :panel1.Refresh();才是王道 
        忘完了,郁闷!唉!!!