填充椭圆误差
FillEllipse Error
我得到一个 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);
}
错误说:系统参数异常:参数无效
FillEllipse(Brush, int32 x,int32 y,int32 width,int 32 height);
由于您传递的是 PaintEventArgs e
,您可以而且应该使用它的 e.Graphics
!
并且由于您没有创建它,所以不要丢弃它!
但是您创建的那些 Pens
和 Brushes
应该被处理掉,或者更好的是,在 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);
}
我得到一个 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);
}
错误说:系统参数异常:参数无效 FillEllipse(Brush, int32 x,int32 y,int32 width,int 32 height);
由于您传递的是 PaintEventArgs e
,您可以而且应该使用它的 e.Graphics
!
并且由于您没有创建它,所以不要丢弃它!
但是您创建的那些 Pens
和 Brushes
应该被处理掉,或者更好的是,在 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);
}