2011-02-09 4 views
0

Предположим, у нас есть форма и картинка на нем:Невозможно нарисовать на Picturebox

Где находится проблема? Прямоугольник исчезает в окне изображения. Зачем?

private void pictureBox1_Paint(object sender, PaintEventArgs e) 
    { 
     Graphics gr = pictureBox1.CreateGraphics(); 
     gr.FillRectangle(Brushes.Red, new Rectangle(10, 10, 50, 50)); 

    } 
+6

Во-первых, используйте 'e.Graphics' с прилагаемого' PaintEventArgs' вместо создания нового объекта 'Graphics'. –

+2

Почему вы пишете 'Everlasting', прежде всего, ваши вопросы? – Bobby

+0

@ deltreme: Я не уверен на сто процентов, но разве это не ответ? Прямоугольник нарисован на другом объекте «Graphics», а остальное? – Bobby

ответ

1

Я проверил его, и да, дело в том, что все упомянули в комментариях.

Проблема заключается в том, что вы не используете ссылку Graphics при рисовании вместо того, чтобы просто нажимать Rectangle на графическую рамку, которая не будет отображаться.

Чтобы получить это право, вам нужно будет использовать e.Graphics, чтобы получить пояснение на графике, которая будет окрашена.

Так правильный код:

private void pictureBox1_Paint(object sender, PaintEventArgs e) 
{ 
    Graphics gr = e.Graphics; 
    gr.FillRectangle(Brushes.Red, new Rectangle(10, 10, 50, 50)); 

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