Creazione e utilizzo di componenti in Visual Basic
Un componente è una classe che implementa l'interfaccia System.ComponentModel.IComponent o che deriva direttamente o indirettamente da una classe che implementa IComponent. Un componente .NET Framework è un oggetto riutilizzabile che interagisce con altri oggetti, consente di esercitare il controllo sulle risorse esterne e fornisce supporto in fase di progettazione.
Una funzionalità importante dei componenti è che sono progettabili, pertanto una classe che rappresenta un componente può essere utilizzata nell'ambiente di sviluppo integrato di Visual Studio. I componenti possono essere aggiunti alla Casella degli strumenti, trascinati e rilasciati su un form nonché modificati su una superficie di progettazione. Si noti che il supporto base per la fase di progettazione per i componenti è incorporato in .NET Framework. La fruizione di tale supporto non richiede allo sviluppatore di componenti alcun intervento aggiuntivo.
I controlli sono simili ai componenti poiché anch'essi sono progettabili. Al contrario dei componenti, tuttavia, i controlli forniscono un'interfaccia utente. Un controllo deve derivare da una delle classi di controlli di base: Control o Control.
Quando creare un componente
Se la classe verrà utilizzata su un'area di progettazione, quale la finestra di progettazione di Windows Form o di Web Form, ma è priva di interfaccia utente, deve essere un componente e implementare IComponent oppure derivare da una classe che implementa direttamente o indirettamente IComponent.
Le classi Component e MarshalByValueComponent sono implementazioni base dell'interfaccia IComponent. La principale differenza fra queste classi risiede nel fatto che la classe Component è sottoposta al marshalling per riferimento, mentre la classe IComponent al marshalling per valore. Nell'elenco che segue vengono fornite indicazioni di massima per l'implementazione.
Se è necessario sottoporre un componente al marshalling per riferimento, eseguire una derivazione da Component.
Se è necessario sottoporre un componente al marshalling per valore, eseguire una derivazione da MarshalByValueComponent.
Se a causa dell'ereditarietà singola non è possile eseguire una derivazione del componente da una delle implementazioni base, implementare IComponent.
Per ulteriori informazioni sul supporto di base in fase di progettazione, vedere Attributi per componenti in fase di progettazione e Estensione del supporto in fase di progettazione.
Classi di componenti
Lo spazio dei nomi System.ComponentModel fornisce classi che vengono utilizzate per implementare il comportamento di componenti e controlli in fase di esecuzione e in fase di progettazione. In questo spazio dei nomi sono comprese le classi base e le interfacce per l'implementazione di convertitori di attributo e tipo, associazioni a origini dati e componenti relativi alle licenze.
Le principali classi di componenti sono le seguenti:
Component. Un'implementazione di base per l'interfaccia IComponent. Questa classe consente di condividere oggetti fra applicazioni diverse.
MarshalByValueComponent. Un'implementazione di base per l'interfaccia IComponent.
Container. L'implementazione di base per l'interfaccia IContainer. Questa classe incapsula zero o più componenti.
Di seguito sono riportate alcune delle classi utilizzate per le licenze relative ai componenti.
License. La classe base astratta per tutte le licenze. La licenza viene concessa per una specifica istanza di un componente.
LicenseManager. Fornisce proprietà e metodi per aggiungere una licenza a un componente e per gestire un oggetto LicenseProvider.
LicenseProvider. La classe base astratta per l'implementazione di un provider di licenze.
LicenseProviderAttribute. Specifica la classe LicenseProvider da utilizzare con una classe.
Classi maggiormente utilizzate per descrivere e rendere permanenti i componenti.
TypeDescriptor. Fornisce informazioni sulle caratteristiche di un componente, quali attributi, proprietà ed eventi.
EventDescriptor. Fornisce informazioni su un evento.
PropertyDescriptor. Fornisce informazioni relative a una proprietà.
Sezioni correlate
Confronto tra classe, componente e controllo
Vengono fornite le definizioni di componente e controllo e illustrate le differenze che esistono fra di essi e le classi.Modifica di componenti
Guida di orientamento all'utilizzo dei componenti.Procedure dettagliate per la modifica di componenti
Vengono forniti collegamenti a istruzioni dettagliate per la programmazione dei componenti.Classi di componenti
Vengono descritti gli aspetti che fanno di una classe un componente, alcune modalità per esporre le funzionalità dei componenti, il controllo dell'accesso ai componenti e il controllo della modalità di creazione delle istanze dei componenti.Risoluzione dei problemi relativi alla modifica di controlli e componenti
Viene illustrato come risolvere alcuni problemi comuni.
Vedere anche
Attività
Procedura: accedere al supporto in fase di progettazione in Windows Form
Procedura: estendere l'aspetto e il comportamento di controlli in modalità progettazione
Procedura: eseguire un'inizializzazione personalizzata per i controlli in modalità progettazione