2015-04-28 9 views
-1

я получаю JIT компиляции ошибка работает этот кодFillEllipse Ошибка

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 (кисть, Int32 х, int32 у, int32 ширина, внутр 32 высота);

+0

Вы понимаете, что вы на самом деле утилизации объекта 'Graphics', а затем пытается использовать его снова, не так ли? –

+0

ah извините, я упоминаю об этом после публикации извинения, но теперь у меня есть другой вопрос, как сделать размер формы статичным в разных мониторах? по разным размерам? извините и благодарю вас. –

+0

Почти всегда ошибка использования «CreateGraphics». В вашем методе 'draw' есть переданный в него« PaintEventArgs », который, как я полагаю, вы получаете из какого-то события« Paint ». Вы должны использовать экземпляр Graphics, который приходит из этого: «Графика gr = e.Graphics'. И не уничтожайте его. –

ответ

0

Поскольку вы проходите мимо в PaintEventArgs e, вы можете и должны использовать свой e.Graphics!

И так как вы его не создали, не распоряжайтесь им!

Но создаваемые вами Pens и Brushes вами должны быть удалены или еще лучше, создайте их в статье using! Для SolidBrush мы можем использовать стандарт Brush, который мы не можем изменить и не должны утилизировать!

Чтобы убедиться, что Fill не будет перезаписывать Draw, я переключил порядок.

Итак, попробуйте следующее:

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); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^