Consigli sui tipi di controlli
Con .NET Framework è possibile sviluppare e implementare nuovi controlli. Oltre al controllo utente già noto, è ora possibile scrivere controlli personalizzati in grado di eseguire il relativo disegno, nonché estendere la funzionalità dei controlli esistenti tramite l'ereditarietà. Decidere quale tipo di controllo creare può generare una certa confusione. In questa sezione verranno evidenziate le differenze tra i vari tipi di controlli da cui è possibile ereditare e saranno presentate alcune considerazioni relative al tipo di controllo da scegliere in base allo specifico progetto.
Nota
Per modificare un controllo da utilizzare in Web Form, vedere Sviluppo di controlli server ASP.NET personalizzati.
Eredità da un controllo Windows Form
È possibile derivare un controllo ereditato da qualsiasi controllo Windows Form esistente. Questo meccanismo consente di mantenere tutta la funzionalità inerente a un controllo Windows Form e di estenderla mediante l'aggiunta di proprietà, metodi o altre funzionalità personalizzate. È ad esempio possibile creare un controllo derivato da TextBox in grado di accettare solo numeri e di convertire automaticamente l'input in un valore. Tale controllo può contenere codice di convalida chiamato ogni volta che si modifica il testo nella casella di testo e disporre di una proprietà aggiuntiva, Value. Alcuni controlli consentono di fornire un aspetto personalizzato all'interfaccia grafica del controllo mediante l'override del metodo OnPaint della classe base.
L'eredità da un controllo Windows Form risulta utile quando:
La maggior parte delle funzionalità necessarie sono identiche a un controllo Windows Form esistente.
Non è necessario disporre di un'interfaccia grafica personalizzata o si desidera progettare un nuovo front-end grafico per un controllo esistente.
Eredità dalla classe UserControl
Un controllo utente è un insieme di controlli Windows Form incapsulati in un contenitore comune, in cui è contenuta tutta la funzionalità inerente associata a ciascuno dei controlli Windows Form e che consente di esporre e associare le proprietà in modo selettivo. Un esempio di controllo utente è dato da un controllo compilato per visualizzare i dati di indirizzo di un cliente contenuti in un database. Questo controllo include varie caselle di testo per visualizzare ogni campo e controlli Button per passare da un record all'altro. È possibile esporre le proprietà di associazione dati in modo selettivo, nonché inserire il controllo in un package e riutilizzarlo in più applicazioni.
L'eredità dalla classe UserControl risulta utile quando:
- Si desidera combinare la funzionalità di vari controlli Windows Form in una singola unità riutilizzabile.
Eredità dalla classe Control
Un altro metodo di creazione di un controllo consiste nel crearlo praticamente dal nulla ereditando dalla classe Control, che fornisce tutte le funzionalità di base richieste da controlli, ad esempio gli eventi, ma non le funzionalità specifiche dei controlli o l'interfaccia grafica. La creazione di un controllo mediante eredità dalla classe Control richiede un lavoro più complesso rispetto all'eredità dal controllo utente o da un controllo di Windows Form esistente. L'autore deve scrivere il codice per l'evento OnPaint del controllo, nonché l'eventuale codice specifico della funzionalità richiesto. È consentita una maggiore flessibilità, tuttavia, ed è possibile personalizzare un controllo in base a esigenze specifiche. Un esempio di controllo personalizzato è dato da un controllo che duplica l'aspetto e il funzionamento di un orologio analogico. Il richiamo del disegno personalizzato farà muovere le lancette dell'orologio in risposta agli eventi Tick di un componente Timer interno.
L'eredità dalla classe Control risulta utile quando:
Si desidera fornire una rappresentazione grafica personalizzata del controllo.
È necessario implementare funzionalità personalizzate che non sono disponibili nei controlli standard.
Vedere anche
Attività
Procedura: sviluppare un controllo di Windows Form semplice