我在运行此代码时收到 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
!
既然不是你创造的,那就不要处理它!
但是,您创建的那些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);
}