Составные элементы управления
Элементы управления, составляющие пользовательский элемент управления, или составные элементы управления, как они иначе называются, обеспечивают относительную гибкость, когда речь идет об отрисовке пользовательской графики. Все элементы управления Windows Forms обрабатывают собственную отрисовку, используя собственный OnPaint метод. Так как этот метод защищен, он недоступен для разработчика и поэтому не может быть заблокирован при рисовании элемента управления. Это, однако, не означает, что нельзя добавить код, влияющий на внешний вид составных элементов управления. Дополнительную отрисовку можно выполнить путем добавления обработчика событий. Например, предположим, вы создаете UserControl с помощью кнопки с именем MyButton
. Если вы хотели бы отрисовки, которые не предоставляются классом Button, необходимо добавить код в пользовательский элемент управления, аналогичную следующей:
Public Sub MyPaint(ByVal sender as Object, e as PaintEventArgs) Handles _
MyButton.Paint
'Additional rendering code goes here
End Sub
// Add the event handler to the button's Paint event.
MyButton.Paint +=
new System.Windows.Forms.PaintEventHandler (this.MyPaint);
// Create the custom painting method.
protected void MyPaint (object sender,
System.Windows.Forms.PaintEventArgs e)
{
// Additional rendering code goes here.
}
Note
Некоторые Windows Forms элементы управления, такие как TextBox, рисуются непосредственно с Windows. В таком случае OnPaint никогда не вызывается метод, и таким образом, приведенном выше примере никогда не будет вызываться.
При этом создается метод, который выполняется каждый раз при выполнении события MyButton.Paint
, таким образом, добавляя дополнительное графическое представление для элемента управления. Обратите внимание, что это не блокирует выполнение MyButton.OnPaint
и поэтому все операции рисования, обычно выполняемые кнопкой, по-прежнему будут выполняться наряду с настраиваемым рисованием. Дополнительные сведения о технологии GDI+ и настраиваемой отрисовке см. в разделе Создание графических изображений с помощью GDI+. При необходимости получения уникального представления элемента управления оптимальным решением будет создание наследуемого элемента управления и написание для него собственного кода отрисовки. Дополнительные сведения см. в разделе Элементы управления, разработанные пользователем.