Переопределить OnPaint

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


person maxfridbe    schedule 10.04.2009    source источник
comment
Вы спрашиваете, как нарисовать прямоугольник фокуса на настраиваемом нарисованном элементе управления или как увидеть результаты переопределения OnPaint, глядя на конструктор элемента управления?   -  person Daniel LeCheminant    schedule 11.04.2009


Ответы (2)


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: Control {...}

person Jason Coyne    schedule 10.04.2009
comment
Хорошо, что вы включили описание абзаца, потому что эти ссылки мертвы. - person LarsTech; 09.02.2016

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

Если вы пытаетесь увидеть, как выглядит ваш настраиваемый нарисованный элемент управления ...

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

  • # P4 #
    # P5 # # P6 #
person Daniel LeCheminant    schedule 10.04.2009