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
Creare un nuovo progetto Applicazione Windows Form.
Scegliere Aggiungi nuovo elemento dal menu Progetto.
Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento.
Nella finestra di dialogo Aggiungi nuovo elemento fare doppio clic su Controllo personalizzato.
Un nuovo controllo personalizzato verrà aggiunto al progetto.
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.
Se si utilizza C#, aprire CustomControl1.cs nell'editor di codice.
Individuare la dichiarazione della classe che eredita da Control.
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
Se si utilizza Visual Basic, salvare e chiudere CustomControl1.Designer.vb. Aprire CustomControl1.vb nell'editor di codice.
Implementare eventuali metodi o proprietà personalizzate da incorporare nel controllo.
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). }
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. |