我在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);
}发布于 2013-11-29 13:25:47
你可以使用
this.Invalidate();这应该能证明他们是清白的。
要么这样,要么
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);
}
}我不记得它的具体参数了,但是在你的OnMouseHover (你想关闭省略的地方)
OnMouseHover(){
...
paint = false;
this.Invalidate();
}https://stackoverflow.com/questions/20278818
复制相似问题