Condividi tramite


Procedura: ereditare da controlli di Windows Form esistenti

Aggiornamento: novembre 2007

Per estendere la funzionalità di un controllo esistente, è possibile creare un controllo derivato da un controllo esistente mediante ereditarietà. Da un controllo esistente si ereditano tutte le funzionalità e le proprietà visive del controllo. Se si crea, ad esempio, un controllo che eredita da Button, esso avrà lo stesso aspetto e la stessa funzione di un controllo Button standard. La funzionalità del nuovo controllo potrà essere estesa o modificata mediante l'implementazione di metodi e proprietà personalizzati. In alcuni controlli è inoltre possibile modificare l'aspetto visivo del controllo ereditato mediante l'override del relativo metodo OnPaint.

Nota:

È possibile che le finestre di dialogo e i comandi di menu visualizzati varino da quelli descritti nella Guida in linea a seconda delle impostazioni attive o dell'edizione del programma Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Impostazioni di Visual Studio.

Per creare un controllo ereditato

  1. Creare un nuovo progetto Windows.

    È possibile sceglierne il tipo, ad esempio Applicazione Windows o Libreria di controlli Windows. Se si sceglie un progetto Libreria di controlli Windows, utilizzare il controllo vuoto fornito e ignorare i passaggi 2 e 3.

  2. Scegliere Aggiungi controllo utente dal menu Progetto.

    Viene visualizzata la finestra di dialogo Aggiungi nuovo elemento.

  3. Nella finestra di dialogo Aggiungi nuovo elemento fare doppio clic su Controllo personalizzato.

    Un nuovo controllo personalizzato verrà aggiunto al progetto.

  4. Nell'editor di codice individuare la riga in cui la classe Control viene specificata come classe base da cui ereditare. Sostituire il nome della classe base con quello del controllo da cui si desidera ereditare.

    Per ereditare da Button scrivere ad esempio la riga seguente:

    Inherits System.Windows.Forms.Button
    
    public class CustomControl1 : System.Windows.Forms.Button
    
    public class CustomControl1
       extends System.Windows.Forms.Button
    
  5. Implementare eventuali metodi o proprietà personalizzate da incorporare nel controllo.

  6. Per modificare l'aspetto grafico del controllo, eseguire l'override del metodo OnPaint.

    Nota:

    L'override di OnPaint non consente la modifica dell'aspetto di tutti i controlli. Alcuni controlli il cui disegno viene eseguito completamente in Windows, come TextBox, non chiamano mai il metodo OnPaint e, pertanto, non utilizzeranno il codice personalizzato. Per verificare se il metodo OnPaint è disponibile, fare riferimento alla documentazione del controllo specifico che si desidera modificare. Per un elenco dei controlli Windows Form, vedere Controlli da utilizzare in Windows Form. Se il metodo OnPaint di un controllo non viene elencato come metodo membro, non sarà possibile modificare l'aspetto del controllo mediante l'override di questo metodo. Per ulteriori informazioni sul disegno personalizzato, vedere Disegno e rendering di controlli personalizzati.

    Protected Overrides Sub OnPaint(ByVal pe As _
       System.Windows.Forms.PaintEventArgs)
       MyBase.OnPaint(pe)
       ' Insert code to do custom painting. If you want to completely
       ' change the appearance of your control, do not call
       ' MyBase.OnPaint(pe).
    End Sub
    
    protected override void OnPaint(PaintEventArgs pe)
    {
       // Do not call base.OnPaint if you want to completely
       // control the appearance of the control.
       base.OnPaint(pe);
       // Insert code to do custom painting.
    }
    
    protected void OnPaint(PaintEventArgs pe) 
    {
       // Do not call base.OnPaint if you want to completely
       // control the appearance of the control.
       super.OnPaint(pe);
       // Insert code to do custom painting.
    }
    
  7. Salvare ed eseguire il test del controllo.

Vedere anche

Attività

Procedura: ereditare dalla classe Control

Procedura: ereditare dalla classe UserControl

Procedura: creare controlli per Windows Form

Risoluzione dei problemi relativi ai gestori eventi ereditati in Visual Basic

Concetti

Tipi di controlli personalizzati