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
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.
Scegliere Aggiungi controllo utente dal menu Progetto.
Viene 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.
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
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 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. }
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