Составные элементы управления

Элементы управления, составляющие пользовательский элемент управления, или составные элементы управления, как они иначе называются, обеспечивают относительную гибкость, когда речь идет об отрисовке пользовательской графики. Все элементы управления 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.  
}  

Примечание.

Некоторые элементы управления Windows Forms, такие как TextBox, рисуются непосредственно операционной системой Windows. В этих случаях метод OnPaint не вызывается, как и приведенный выше пример.

При этом создается метод, который выполняется каждый раз при выполнении события MyButton.Paint, таким образом, добавляя дополнительное графическое представление для элемента управления. Обратите внимание, что это не блокирует выполнение MyButton.OnPaint и поэтому все операции рисования, обычно выполняемые кнопкой, по-прежнему будут выполняться наряду с настраиваемым рисованием. Дополнительные сведения о технологии GDI+ и настраиваемой отрисовке см. в разделе Создание графических изображений с помощью GDI+. При необходимости получения уникального представления элемента управления оптимальным решением будет создание наследуемого элемента управления и написание для него собственного кода отрисовки. Дополнительные сведения см. в разделе Элементы управления, разработанные пользователем.

См. также