![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
PashaSem |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 5.3.2006 Репутация: нет Всего: нет |
Всем привет
Помогите разобраться с рисованием на форме прямоугольник по событию Paint рисую на форме прямоугольник , затем по клику кнопки на том же месте рисую прямоугольник другого цвета, но когда курсор переходит на форму проявляется первичный цвет!!! Я Понимаю нужно удалить первый прямоугольник, как это сделать? Как зафиксировать цвет? Спасибо private void Form1_Paint(object sender, PaintEventArgs e) { Rectangle rect1 = new Rectangle(250, 50, 400, 80); SolidBrush blueBrush = new SolidBrush(Color.Blue); Graphics g1 = CreateGraphics(); g1.FillRectangle(blueBrush, rect1); } private void button1_Click(object sender, EventArgs e) { SolidBrush blueBrush = new SolidBrush(Color.Green); Rectangle rect = new Rectangle(250, 50, 400, 80); Graphics g = CreateGraphics(); g.FillRectangle(blueBrush, rect); } |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
В обработчике Form1_Paint нужно рисовать текущим цветом (т.е. в зависимости от того, был клик или нет), а в коде выше любая перерисовка формы вернёт прямоугольнику тот цвет, который в Form1_Paint (т.е. фиксированный).
-------------------- ![]() |
|||
|
||||
PashaSem |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 5.3.2006 Репутация: нет Всего: нет |
(т.е. в зависимости от того, был клик или нет)
Если не тяжело подскажите как отследить отсутствие нажатие ? Событие UnClick я такого не нашел :-))) |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 11 Всего: 149 |
OnClick??? : OnMouseClick Только через дополнительное свовойство:
Его и можно проверять в OnPaint |
|||
|
||||
VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 1 Всего: 6 |
Проблема проста.
1) Делаешь класс, который представляет собой прямоугольник. В класс инкапсулируешь поле типа Color. 2) В классе делаешь метод, который будет перерисовывать прямоугольник. 3) Перегружаешь событие OnPaint, добавляя в его реализацию вызов метода для перерисовки прямоугольника. ЗЫ. Могу перевести на русский ![]() Это сообщение отредактировал(а) VisualProgrammerNET - 30.5.2006, 16:44 -------------------- 3 ГОДА НА ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Перевод: добавь в код переменную класса с типом bool, в обработчике OnClick ставь эту переменную в true, а в обработчике Paint - делай if(var) { рисуй_красным } else { рисуй_синим }, вот и всё ![]() -------------------- ![]() |
|||
|
||||
VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 1 Всего: 6 |
А ну как нужно будет, чтобы прямоугольник двигался?
![]() -------------------- 3 ГОДА НА ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
VisualProgrammerNET,
так он и вопрос задаст тогда соответствующий, а пока и этого достаточно ![]() -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |