Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Рисование в PictureBox при запуске приложения


Автор: bobor 9.4.2011, 01:07
Всем привет. Проблема вот в чем, не могу выбрать нужное событие, для того чтобы при запуске приложения на pictureBox (в Graphics) был нарисован залитый прямоугольник. пробовал события Shown, Load, но чтото не оч помогает, если использовать Shown то фигура рисуется но потом почему-то pictureBox перерисовывается и возвращается к исходному значению. Может подскажете варианты решения проблемы ?

Автор: Экскалупатор 9.4.2011, 01:48
Paint?

Автор: bobor 9.4.2011, 07:26
Странно как-то, у меня на форме кроме пикчбокса лежит еще кнопка(для неё нет событий вообще) при таком коде 
Код

        private Graphics mygr;

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            mygr = pictureBox1.CreateGraphics();
            mygr.FillRectangle(new SolidBrush(Color.Red), 0, 0, 700, 500);
        }

на пикчбокс рисуется прямоугольник только при наведении на эту кнопку.

Еще попробовал событие пикчбокс LoadCompleted, ну и Paint заодно, тоже безуспешно

Автор: diadiavova 9.4.2011, 09:05
bobor, во-первых, это должно быть событие Paint не формы, а того контрола, в котором рисуешь. Во-вторых, объект Graphics надо получать из второго аргумента обработчика события e.Graphics. Ну и в-третьих, не обязательно использовать пикчербокс и даже как правило это не лучший вариант.

Автор: bobor 9.4.2011, 09:57
Ладно, спасибо, пару правил усвоил, пойду порисую в другом месте

Автор: Abbath1349 10.4.2011, 18:12
Цитата(diadiavova @  9.4.2011,  09:05 Найти цитируемый пост)
Ну и в-третьих, не обязательно использовать пикчербокс и даже как правило это не лучший вариант. 

А какой будет лучший вариант если не секрет?)

Автор: diadiavova 10.4.2011, 23:27
Цитата(Abbath1349 @  10.4.2011,  19:12 Найти цитируемый пост)
А какой будет лучший вариант если не секрет?)

От задачи зависит, но, как правило пикчербокс выбирают из-за того, что он (вроде бы) предназначен для отображения изображений. Только обычно речь идет об отображении объекта Image, а не собственноручном рисовании. Если нужен контрол для рисования, его просто надо создать свой.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)