填充椭圆错误



我在运行此代码时收到 JIT 编译错误

void draw(PaintEventArgs e)
{
     Graphics gr =this.CreateGraphics();
     Pen pen = new Pen(Color.Black, 5);
     int x = 50;
     int y = 50;
     int width = 100;
     int height = 100;
     gr.DrawEllipse(pen, x, y, width, height);
     gr.Dispose();
     SolidBrush brush = new SolidBrush(Color.White);
     gr.FillEllipse(brush, x,y,width,height);
 }

错误提示:系统参数异常:中的参数无效填充椭圆(画笔,int32 x,int32 y,int32 宽度,int 32 高度);

由于您正在传递PaintEventArgs e,因此您可以并且应该使用它e.Graphics

既然不是你创造的,那就不要处理它!

但是,您创建的那些PensBrushes应该处理掉,或者更好的是,在using子句中创建它们!对于SolidBrush,我们可以使用 标准Brush ,我们不能改变,也不能处理!

为了确保填充不会覆盖抽奖,我已经切换了顺序。

所以,试试这个:

void draw(PaintEventArgs e)
{
     Graphics gr = e.Graphics;
     int x = 50;
     int y = 50;
     int width = 100;
     int height = 100;
     gr.FillEllipse(Brushes.White, x, y, width, height);
     using (Pen pen = new Pen(Color.Black, 5) )
        gr.DrawEllipse(pen, x, y, width, height);
 }

相关内容

  • 没有找到相关文章

最新更新