| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Переопределение OnPaint |
| Автор: yngwie19 5.8.2009, 22:04 |
| Здравствуйте. У меня вот какой вопрос. В книге Петцольда рассказывается про создание обработчика для события Paint, и говорится что можно его создать как статический метод класса или переопределить виртуальный метод OnPaint. С первым все понятно, но по второму есть пара вопросов: 1) В каких случаях нужно использовать второй способ и вообще какой применяют чаще? 2) Также говорится что из переопределенного метода OnPaint нужно вызывать его для базового класса (base.OnPaint(...)), поясните зачем? |
| Автор: yngwie19 6.8.2009, 00:20 | ||
имею в виду обработчик., который на основе делегата. Он ведь должен быть объявлен как static?
в Петцольде написано, что метод OnPaint класса Control отвечает за вызов всех установленных обработчиков события Paint. Значит чтобы они вызывались надо сделать так чтобы был вызов OnPaint из класса Control так? а это можно сделать только через base.OnPaint? |
| Автор: diadiavova 6.8.2009, 00:28 |
Зачем? Да, и не только. В базовых классах может выполняться какая-то другая прорисовка, да и вообще мало личто там ещё делается, об этом обычно ничего не известно, а вот чтобы не нарушать работу базовых классах в переопределяемых методах вызываются их переопределённые версии. |
| Автор: yngwie19 6.8.2009, 00:39 | ||||
diadiavova, Спасибо, да кстати. тот же Петцольд пишет, что в классе Form нет реализации метода OnPaint и поэтому сделав:
Мы по сути через иерархию классов вызываем его в Control, который уже отвечает за вызов всех установленных обработчиков события Paint? главное до него добраться? P.S:
которые унаследованные от Control или Form и т.д, или все которые есть в других классах не производных Form или Control? |