Составляющие элементы управления
Элементы управления, составляющие пользовательский элемент управления, или составные элементы управления , как они называются, являются относительно негибкими для пользовательской отрисовки графики. Все элементы управления 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+. Если вы хотите создать уникальное представление элемента управления, лучше всего создать наследуемый элемент управления и написать для него пользовательский код отрисовки. Дополнительные сведения см. в разделе User-Drawn элементов управления.
См. также
.NET Desktop feedback