must:this.pictureBox1.CreateGraphics().Save

解决方案 »

  1.   

    ArLi2003,我按照你的方法写成以下,还是不行,怎么办呢?PictureBox1.CreateGraphics.DrawLine(New Pen(Color.Black, 1), oldpt, newpt)
    Me.pictureBox1.CreateGraphics().Save
      

  2.   

    你的画图的代码写在哪里的?如果把画图的代码写在paint事件里面,就不会发生那样的问题
      

  3.   

    raulredondo(),我这个是画mouse轨迹的,就是以下: Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
            'THIS routine does draw an expanding dashed rectangle correctly
           
            If startDrawing = 1 Then            newpt = New Point(e.X, e.Y)            PictureBox1.CreateGraphics.DrawLine(New Pen(Color.Black, 1), oldpt, newpt)            oldpt = newpt
                ok = 0
            End If
        End Sub
      

  4.   

    在MouseMove事件里面记录每一个点的位置,存储在一个数组里面,然后在Paint事件里面根据每一个点的位置重新画一遍。
    PictureBox1_MouseMove()
    {
         Points[i] = new Point(e.X, E.y);
         i++;
    }PictureBox1_Paint()
    {
         for(int i = 0; i < Max; i++)     
              PictureBox1.CreateGraphics.DrawLine(New Pen(Color.Black, 1), Points[i], Points[i+1]);
    }
      

  5.   

    写在 Paint 事件里,否则窗口遮盖或是最小化后图形就会消失;
      

  6.   

    在程序代码中自己用几句调用picturebox 的 paint事件
    用路径,区域来存取你画的线什么的
      

  7.   

    写在paint事件中,每当窗体重绘时就会自动调用