Procedura: Ereditare da controlli Windows Form esistenti
Se si desidera estendere la funzionalità di un controllo esistente, è possibile creare un controllo derivato da un controllo esistente tramite 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 apparirà esattamente come un controllo Button standard. È 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 relativo metodo OnPaint.
Per creare un controllo ereditato
In Visual Studio, crea un nuovo progetto di applicazione Windows Forms
. Dal menu Progetto
scegliere Aggiungi nuovo elemento .La finestra di dialogo Aggiungi nuovo elemento viene visualizzata.
Nella finestra di dialogo Aggiungi Nuovo Elemento fare doppio clic su Controllo Personalizzato.
Al progetto viene aggiunto un nuovo controllo personalizzato.
Se stai usando:
- Visual Basic, in Esplora soluzioni nella parte superiore, fare clic su Mostra tutti i file. Espandere CustomControl1.vb e quindi aprire CustomControl1.Designer.vb nell'editor di codice.
- C#, aprire CustomControl1.cs nell'editor di codice.
Individua la dichiarazione di classe, che eredita da Control.
Modificare la classe di base nel 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
Se si usa Visual Basic, salvare e chiudere CustomControl1.Designer.vb. Aprire CustomControl1.vb nell'editor di codice.
Implementare eventuali metodi o proprietà personalizzati che il controllo incorporerà.
Se si desidera modificare l'aspetto grafico del controllo, eseguire l'override del metodo OnPaint.
Nota
L'override di OnPaint non consente di modificare l'aspetto di tutti i controlli. I controlli che hanno tutta la gestione grafica eseguita da Windows (ad esempio, TextBox) non chiamano mai il loro 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 metodo OnPaint è disponibile. Per un elenco di tutti i controlli Windows Form, vedere Controlli da utilizzare in Windows Form. Se un controllo non dispone di OnPaint elencato come metodo membro, non è possibile modificarne l'aspetto eseguendo l'override di questo metodo. Per ulteriori informazioni sulla pittura personalizzata, vedere pittura 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 e testare il controllo.
Vedere anche
.NET Desktop feedback