Condividi tramite


Procedura: Ereditare da controlli Windows Form esistenti

Se si desidera estendere le funzionalità di un controllo esistente, è possibile creare un controllo derivato da un controllo esistente tramite l'ereditarietà. Quando si eredita da un controllo esistente, si ereditano tutte le funzionalità e le proprietà visive di tale controllo. Ad esempio, se si crea un controllo ereditato da Button, il nuovo controllo sarà simile a un controllo standard Button . È quindi possibile estendere o modificare la funzionalità del nuovo controllo tramite l'implementazione di metodi e proprietà personalizzati. In alcuni controlli è anche possibile modificare l'aspetto visivo del controllo ereditato eseguendo l'override del OnPaint relativo metodo.

Per creare un controllo ereditato

  1. In Visual Studio creare un nuovo progetto di applicazione Windows Form.

  2. Dal menu Progetto, scegliere Aggiungi nuovo elemento.

    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 viene aggiunto al progetto.

  4. Se si usa:

    • Visual Basic, nella parte superiore di Esplora soluzioni, fare clic su Mostra tutti i file. Espandere CustomControl1.vb e quindi aprire Customcontrol1 nell'Editor di codice.
    • C#, aprire CustomControl1.cs nell'editor di codice.
  5. Individuare la dichiarazione di classe , che eredita da Control.

  6. Modificare la classe di base per il controllo da cui si desidera ereditare.

    Ad esempio, se si vuole ereditare da Button, modificare la dichiarazione di classe nel modo seguente:

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

  8. Implementare eventuali metodi o proprietà personalizzati da incorporare nel controllo.

  9. Se si desidera modificare l'aspetto grafico del controllo, eseguire l'override del OnPaint metodo .

    Nota

    L'override OnPaint non consente di modificare l'aspetto di tutti i controlli. I controlli che hanno tutto il loro disegno eseguito da Windows (ad esempio, TextBox) non chiamano mai il metodo OnPaint e quindi non useranno mai il codice personalizzato. Fare riferimento alla documentazione della Guida per il controllo specifico da modificare per verificare se il OnPaint metodo è disponibile. Per un elenco di tutti i controlli Windows Forms vedere Controlli da usare in Windows Forms. Se un controllo non è OnPaint elencato come metodo membro, non è possibile modificarne l'aspetto eseguendo l'override di questo metodo. Per altre 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).
    }
    
  10. Salvare ed eseguire il test del controllo.

Vedi anche