2009-04-10 5 views
3

Если я переопределяю OnPaint и нарисую квадрат на элементе управления, как мне получить, что e.graphics.draw ... появится, когда я просматриваю его в дизайнере?Override OnPaint

+0

Вы спрашиваете, как нарисовать прямоугольник фокуса на настраиваемой обращается контроль, или как увидеть результаты переопределенная OnPaint, глядя на дизайнера элемента управления? –

ответ

6
http://msdn.microsoft.com/en-us/magazine/cc164048.aspx

http://msdn.microsoft.com/en-us/magazine/cc164145.aspx

Хотя вы можете вручную зарегистрировать с Control.OnPaint добавить свой дизайн времени пользовательского интерфейса, вы обнаружите, что переопределение OnPaintAdornments является лучшим вариантом , потому что это только после того, как пользовательский интерфейс времени разработки/времени выполнения управления окрашен, позволяя положить глазурь на торт (см. рисунок 20). Просто добавления DesignerAttribute к классу ClockControl завершает ассоциации: Скопировать код

[ Дизайнер (TypeOf (ClockControlDesigner)) ] Класс ClockControl: Контроль {...}

+0

Хорошо, что вы включили описание параграфа, потому что эти ссылки мертвы. – LarsTech

1

Если вы пытаясь нарисовать прямоугольник фокуса для вас, и его можно увидеть при манипулировании вашим контролем после его добавления в форму, тогда Gaijin42's approach должен работать.

Если вы пытаетесь узнать, что ваш заказ обращается управление выглядит ...

  • Если вы переопределен метод OnPaint в управлении, вы должны увидеть результаты этого OnPaint, когда вам посмотрите на свой контроль после того, как он был добавлен в форму (или другой элемент управления).

  • Если вы пытаетесь увидеть результаты Paint при взгляде на дизайнера для самого управления, I don't think that is possible (по крайней мере, это было не с VS2005):

    К сожалению, это не возможно , Пока вы пишете поведение пользовательского элемента управления, код не скомпилирован, а разработчик фактически использует обычный пользовательский элемент управления для размещения дочерних элементов управления. OnPaint переопределение и т. Д. Не запускается.

    Для отладки переопределений в вашем управлении вам необходимо запустить его в каком-то хосте. VS2005 предоставляет новый элемент управления для этой цели, но я считаю, что даже этого недостаточно.

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