Controlli costitutivi
I controlli che costituiscono un controllo utente, detti anche controlli costitutivi, offrono scarsa flessibilità in termini di rendering personalizzato della grafica. Tutti i controlli Windows Form gestiscono il proprio rendering tramite il proprio OnPaint metodo. Poiché questo metodo è protetto, non è accessibile allo sviluppatore e quindi non è possibile evitarne l'esecuzione quando il controllo viene disegnato. Ciò non implica tuttavia che non sia possibile aggiungere codice per modificare l'aspetto dei controlli costitutivi. Per eseguire un altro rendering, è possibile aggiungere un gestore eventi. Si supponga, ad esempio, di creare un oggetto UserControl con un pulsante denominato MyButton
. Se si vuole eseguire un rendering aggiuntivo oltre a quanto fornito da Button, aggiungere codice al controllo utente in modo simile al seguente:
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.
}
Nota
Alcuni controlli Windows Form, ad esempio TextBox, vengono disegnati direttamente da Windows. In questi casi, il OnPaint metodo non viene mai chiamato e quindi l'esempio precedente non verrà mai chiamato.
Viene quindi creato un metodo eseguito ogni volta che viene eseguito l'evento MyButton.Paint
, aggiungendo in tal modo un'altra rappresentazione grafica al controllo. Si noti che ciò non impedisce l'esecuzione di MyButton.OnPaint
e quindi tutti i disegni eseguiti normalmente da un pulsante continueranno a essere eseguiti in aggiunta al disegno personalizzato. Per informazioni dettagliate sulla tecnologia GDI+ e sul rendering personalizzato, vedere Creazione di immagini grafiche con GDI+. Per avere una rappresentazione univoca del controllo, è consigliabile creare un controllo ereditato per cui scrivere il codice di rendering personalizzato. Per informazioni dettagliate, vedere Controlli creati dall'utente.
Vedi anche
.NET Desktop feedback