2012-04-21 73 views
0

我是这个论坛的新成员,而且我的英语不完美,所以如果我的问题写得不好,我想借口。绘制和删除旧图纸

我正在用C#制作一个绘画程序,并且所有的都完美期待一个问题。 当我绘制一条线,或矩形或椭圆,当调用mouseMove事件时,也会绘制旧的形状。

如何使用mouseMove事件绘制形状并将旧形状绘制为未绘制。

这是我的代码的一部分,以获得更多的解释。

//---Variables declared by the Prgrammer---// 
//'parent' is variable that take the MdiParent 
//'mouseIsDown' is boolean variable 
//'startPoint' and 'endPoint' are Point Varables 
//'pen' is Pen variable that is configured eralier 
//'graphic' is pictureBox in the same form. 

private void pbx_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (parent.btnLine.Checked) 
     { 
      mouseIsDown = true; 
      startPoint = new Point(e.X, e.Y); 
     } 
    } 

    private void pbx_MouseMove(object sender, MouseEventArgs e) 
    { 
     if (mouseIsDown == true && parent.btnLine.Checked) 
     { 
      pen = new Pen(parent.btnPreview.BackColor, 12); 
      endPoint = new Point(e.X, e.Y); 
      graphic.DrawLine(pen, startPoint, endPoint); 
     } 
    } 

    private void pbx_MouseUp(object sender, MouseEventArgs e) 
    { 
     mouseIsDown = false; 
    } 

请帮帮我。这对我来说是个大问题。 谢谢。


请帮助我,我等了2天。 当我向图形对象绘制新图形时,旧图形将被删除。

我尝试graphic.Save()方法,但没有给我正确的结果。

如何在制作另一张图片时使图画变得柔美?

回答

0

正如您使用的是图片框,您可以使用Invalidate()方法。

+0

Invalidate()函数不会给我想要的结果,因为绘图在鼠标移动时不可见。 但是使用Refresh()方法,图形是可见的。现在的问题是,当我开始绘制新的绘图时。旧的被删除.. 感谢您的帮助。 – Takerman 2012-04-21 14:24:23