Condividi tramite


Procedura: ereditare da controlli di Windows Form esistenti

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 siano diversi da quelli descritti nella Guida 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 Gestione delle impostazioni.

Per creare un controllo ereditato

  1. Creare un nuovo progetto Applicazione Windows Form.

  2. Scegliere Aggiungi nuovo elemento dal menu Progetto.

    Verrà 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. Se si utilizza Visual Basic, fare clic su Mostra tutti i file nella parte superiore di Esplora soluzioni. Espandere CustomControl1.vb, quindi aprire CustomControl1.Designer.vb nell'editor di codice.

  5. Se si utilizza C#, aprire CustomControl1.cs nell'editor di codice.

  6. Individuare la dichiarazione della classe che eredita da Control.

  7. Sostituire la classe di base con il controllo da cui si desidera ereditare.

    Per ereditare da Button modificare ad esempio la dichiarazione della classe come segue:

    Partial Class CustomControl1
        Inherits System.Windows.Forms.Button
    
    public partial class CustomControl1 : System.Windows.Forms.Button
    
  8. Se si utilizza Visual Basic, salvare e chiudere CustomControl1.Designer.vb. Aprire CustomControl1.vb nell'editor di codice.

  9. Implementare eventuali metodi o proprietà personalizzate da incorporare nel controllo.

  10. 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 e As _
       System.Windows.Forms.PaintEventArgs)
       MyBase.OnPaint(e)
       ' Insert code to do custom painting. 
       ' If you want to completely change the appearance of your control,
       ' do not call MyBase.OnPaint(e).
    End Sub
    
    protected override void OnPaint(PaintEventArgs pe)
    {
       base.OnPaint(pe);
       // Insert code to do custom painting.
       // If you want to completely change the appearance of your control,
       // do not call base.OnPaint(pe).
    }
    
  11. 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

Troubleshooting Inherited Event Handlers in Visual Basic

Procedura dettagliata: eredità da un controllo Windows Form con Visual Basic

Procedura dettagliata: eredità da un controllo di Windows Form con Visual C#

Concetti

Tipi di controlli personalizzati

Cronologia delle modifiche

Data

Cronologia

Motivo

Luglio 2010

Aggiornamento per Visual Studio 2010

Commenti e suggerimenti dei clienti.