首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows窗体删除绘制的椭圆

Windows窗体删除绘制的椭圆
EN

Stack Overflow用户
提问于 2013-11-29 13:14:21
回答 1查看 1.4K关注 0票数 0

我在Windows窗体上创建了一些省略号

我希望在鼠标悬停时可选,如果我选择任何椭圆,它将从窗口中删除

下面是在c#中创建椭圆的一些代码

代码语言:javascript
复制
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);
}
EN

回答 1

Stack Overflow用户

发布于 2013-11-29 13:25:47

你可以使用

代码语言:javascript
复制
this.Invalidate();

这应该能证明他们是清白的。

要么这样,要么

代码语言:javascript
复制
Graphics.Clear();

编辑:

实际上,另一种方法是在鼠标悬停时在内部放置一个布尔值,并使用该布尔值来指示何时绘制椭圆。作为一般说明,您应该将椭圆图形放在onpaint的覆盖中。现在,现在,如果你要使屏幕失效(无论是你自己还是Windows),你的形状就会消失。在绘画上使用的示例。

代码语言:javascript
复制
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 (你想关闭省略的地方)

代码语言:javascript
复制
OnMouseHover(){
    ...
    paint = false;
    this.Invalidate(); 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20278818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档