Creazione e uso 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 è un oggetto riutilizzabile in grado di interagire con altri oggetti, che consente di controllare le risorse esterne e il supporto in fase di progettazione.
Una caratteristica importante dei componenti è che possono essere manipolati in fase di progettazione, quindi se una classe è un componente può essere usata nell'ambiente di sviluppo integrato (IDE) di Visual Studio. Un componente può essere aggiunto alla casella degli strumenti, trascinato e rilasciato in un form e manipolato in un'area di progettazione. Il supporto di base per i componenti in fase di progettazione è incorporato in .NET. Uno sviluppatore di componenti non deve effettuare operazioni aggiuntive per sfruttare la funzionalità di base in fase di progettazione.
Un controllo è simile a un componente, poiché entrambi possono essere manipolati. A differenza di un componente, un controllo produce però un'interfaccia utente. Un controllo deve derivare da una delle classi di controllo di base: Control o Control.
Quando si crea un componente
Se la classe viene usata in un'area di progettazione, ad esempio Windows Form o Progettazione Web Form, ma non ha un'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 di base dell'interfaccia IComponent. La differenza principale tra queste classi è che la classe Component viene sottoposta a marshalling in base al riferimento, mentre IComponent è sottoposta a marshalling in base al valore. L'elenco seguente contiene indicazioni generali per gli implementatori.
Se il componente deve essere sottoposto a marshalling in base al riferimento, derivare la classe da Component.
Se il componente deve essere sottoposto a marshalling in base al valore, derivare la classe da MarshalByValueComponent.
Se il componente non può derivare da una delle implementazioni di base a causa di un'ereditarietà singola, implementare IComponent.
Classi di componenti
Lo spazio dei nomi System.ComponentModel offre classi usate per implementare il comportamento dei componenti e dei controlli in fase di progettazione e di esecuzione. Questo spazio dei nomi include le classi e le interfacce di base per l'implementazione di attributi e convertitori, l'associazione a origini dati e le licenze per i componenti.
Le classi di componenti principali sono:
Component. Un'implementazione di base per l'interfaccia IComponent. Questa classe abilita la condivisione degli oggetti tra applicazioni.
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.
Alcune delle classi utilizzate per le licenze dei componenti sono:
License. Classe di base astratta per tutte le licenze. La licenza viene concessa a un'istanza specifica di un componente.
LicenseManager. Offre proprietà e metodi per aggiungere una licenza a un componente e gestire LicenseProvider.
LicenseProvider. Classe di base astratta per l'implementazione di un provider di licenza.
LicenseProviderAttribute. Specifica la classe LicenseProvider da usare con una classe.
Classi usate in genere per descrivere e rendere persistenti i componenti.
TypeDescriptor. Offre informazioni sulle caratteristiche di un componente, ad esempio gli attributi, le proprietà e gli eventi.
EventDescriptor. Include informazioni su un evento.
PropertyDescriptor. Include informazioni su una proprietà.
Sezioni correlate
Risoluzione dei problemi relativi alla modifica di controlli e componenti
Viene illustrato come risolvere i problemi comuni.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per