Compartilhar via


Controles constituintes

Os controles que compõem um controle de usuário, ou controles constituintes são denominadas, são relativamente inflexível quando se trata de processamento de elementos gráficos personalizados. Todos os controles do Windows Forms lidar com seu próprio processamento através de suas próprias OnPaint método. Porque esse método está protegido, ele não está acessível para o desenvolvedor e, portanto, não pode ser evitado seja executado quando o controle é pintado. Isso não significa, no entanto, se você não pode adicionar código para afetar a aparência dos controles constituintes. Processamento adicional pode ser feito adicionando um manipulador de eventos. Por exemplo, suponha que você estava criando um UserControl com um botão chamado MyButton. Se você quis têm um processamento adicional além da que foi fornecido pelo Classe Button, você adicionaria o código para o controle de usuário semelhante à seguinte:

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.
}
// Add the event handler to the button's Paint event.
MyButton.add_Paint(new 
System.Windows.Forms.PaintEventHandler(this.MyPaint));
// Create the custom painting method.
protected void MyPaint(System.Object sender,
   System.Windows.Forms.PaintEventArgs e)
{
// Additional rendering code goes here.
}
ObservaçãoObservação

Alguns formulários Windows controles, como TextBox, são pintadas diretamente pelo Windows. Nesses casos, o OnPaint nunca é chamado de método e, portanto, o exemplo acima nunca será chamado.

Isso cria um método que é executado sempre que o MyButton.Paint evento é executado, conseqüentemente, adicionando adicional representação gráfica para o seu controle. Observe que isso não impede a execução de MyButton.OnPaint, e, portanto, todos da pintura geralmente é realizada por um botão ainda serão realizados com pintura personalizada. Para obter detalhes sobre a tecnologia de GDI+ e o processamento personalizado, consulte o Criação de imagens gráficas com GDI+. Se você desejar ter uma representação exclusiva do seu controle, o melhor curso de ação é para criar um controle herdado e escrever o código de processamento personalizado para ele. Para obter detalhes, consulte Controles de User-Drawn.

Consulte também

Tarefas

Como: Criar objetos gráficos para desenho

Referência

UserControl

OnPaint

Conceitos

Controles desenhados pelo usuário

Variedades de controles personalizados