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:

Alcune delle classi utilizzate per le licenze dei componenti sono:

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à.

Risoluzione dei problemi relativi alla modifica di controlli e componenti
Viene illustrato come risolvere i problemi comuni.

Vedi anche