2013-11-29 123 views
0

我已经创造了一些椭圆Windows窗体上Windows窗体删除绘制椭圆

我想要的选择,而鼠标,如果我选择任何椭圆它将从窗口

这里删除了一些代码,在创建椭圆C#

public void DrawCircle_Paint(object sender, PaintEventArgs e) 
{ 
    Pen pen = new Pen(Color.Black, 3); Graphics gr = this.CreateGraphics(); gr.DrawEllipse(pen, 40, 45, 20, 20); 
    Pen pen2 = new Pen(Color.Black, 3); Graphics gr1 = this.CreateGraphics(); gr.DrawEllipse(pen2, 30, 25, 38, 20); 
    Pen pen3 = new Pen(Color.Black, 3); Graphics gr2 = this.CreateGraphics(); gr.DrawEllipse(pen3, 35, 36, 68, 15); 
    Pen pen4 = new Pen(Color.Black, 3); Graphics gr3 = this.CreateGraphics(); gr.DrawEllipse(pen4, 50, 60, 67, 35); 
} 
+0

欢迎(因此)。如果您觉得您的问题编辑不正确,建议拒绝其编辑,如果它已被其他人批准,则可以通过单击“编辑x秒前”链接将其回滚,然后转到您想要的修订版,然后点击“回滚”。 –

回答

0

你可以使用

this.Invalidate(); 

应该CLEA [R他们....

要么,

Graphics.Clear(); 

编辑:

其实,另一种方法是让你的鼠标悬停内一个布尔值,并用它来决定何时绘制椭圆/不是。作为一般说明,您应该将椭圆图绘制为onpaint的重写。目前,如果您要使屏幕失效(无论是由您还是由Windows),您的形状将会消失。一个使用油漆的例子。

bool paint = false; 
protected override void OnPaint(object sender, PaintEventArgs e) 
{ 
    if (paint) 
    { 
      Pen pen = new Pen(Color.Black, 3); Graphics gr = this.CreateGraphics(); gr.DrawEllipse(pen, 40, 45, 20, 20); 
      Pen pen2 = new Pen(Color.Black, 3); Graphics gr1 = this.CreateGraphics(); gr.DrawEllipse(pen2, 30, 25, 38, 20); 
      Pen pen3 = new Pen(Color.Black, 3); Graphics gr2 = this.CreateGraphics(); gr.DrawEllipse(pen3, 35, 36, 68, 15); 
      Pen pen4 = new Pen(Color.Black, 3); Graphics gr3 = this.CreateGraphics(); gr.DrawEllipse(pen4, 50, 60, 67, 35); 
    } 
} 

我不记得具体paramters它,但在你的OnMouseHover(要关闭elipse)

OnMouseHover(){ 
    ... 
    paint = false; 
    this.Invalidate(); 
} 
+0

我可以在哪写代码this.invalidate。任何例子。? – Anand

+0

哪里?我会把它们放在mousehoverover里面(当你想删除elipses时) –

+0

以及如何选择绘制的椭圆任何示例编程.. – Anand