Condividi tramite


Controlli costitutivi

I controlli che costituiscono un controllo utente, o controlli costitutivi, sono relativamente poco flessibili per quanto riguarda il rendering grafico personalizzato. Tutti i controlli per Windows Form gestiscono il proprio rendering mediante il metodo OnPaint. Poiché questo metodo è protetto, non è accessibile allo sviluppatore, quindi non è possibile impedirne l'esecuzione quando il controllo viene disegnato. Ciò non significa, tuttavia, che non sia possibile aggiungere codice per definire l'aspetto dei controlli costitutivi. Un ulteriore rendering può essere eseguito aggiungendo un gestore eventi. Ad esempio, si supponga di creare un controllo UserControl con un pulsante denominato MyButton. Se si desidera disporre di un ulteriore rendering oltre a quello fornito dalla classe Button, è necessario aggiungere al controllo utente codice simile a quello riportato di seguito:

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.
}

Nota

Alcuni controlli per Windows Form, come TextBox, sono disegnati direttamente da Windows. In tali casi, l'esempio precedente non verrà mai chiamato dato che non viene mai chiamato il metodo OnPaint.

Il metodo creato viene eseguito a ogni esecuzione dell'evento MyButton.Paint, aggiungendo in tal modo un'ulteriore rappresentazione grafica al controllo. Tenere presente che ciò non impedisce l'esecuzione di MyButton.OnPaint, pertanto il disegno, di solito ottenuto in seguito alla selezione di un pulsante, continua a essere eseguito insieme al disegno personalizzato. Per informazioni dettagliate sulla tecnologia GDI+ e sul rendering personalizzato, vedere Creazione di immagini di tipo grafico con GDI+. Se si desidera ottenere una rappresentazione univoca del controllo, il metodo ottimale consiste nel creare un controllo ereditato per il quale scrivere un codice di rendering personalizzato. Per informazioni dettagliate, vedere Controlli creati dall'utente.

Vedere anche

Attività

Procedura: creare oggetti Graphics per disegnare

Riferimenti

UserControl

OnPaint

Concetti

Controlli creati dall'utente

Tipi di controlli personalizzati