Creazione e utilizzo di componenti in Visual BasicCreating and Using Components 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.A component is a class that implements the System.ComponentModel.IComponent interface or that derives directly or indirectly from a class that implements IComponent. Un componente di .NET Framework è un oggetto che può essere riutilizzato, può interagire con altri oggetti e consente di controllare le risorse esterne e supporto in fase di progettazione.A .NET Framework component is an object that is reusable, can interact with other objects, and provides control over external resources and design-time support.

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.An important feature of components is that they are designable, which means that a class that is a component can be used in the Visual Studio Integrated Development Environment. Un componente può essere aggiunto alla casella degli strumenti, trascinato e rilasciato in un form e manipolato in un'area di progettazione.A component can be added to the Toolbox, dragged and dropped onto a form, and manipulated on a design surface. Si noti che il supporto in fase di progettazione per i componenti di base sono incorporato in .NET Framework. uno sviluppatore di componenti non dovrà effettuare operazioni aggiuntive per sfruttare la funzionalità di base in fase di progettazione.Notice that base design-time support for components is built into the .NET Framework; a component developer does not have to do any additional work to take advantage of the base design-time functionality.

Un controllo è simile a un componente, poiché entrambi possono essere manipolati.A control is similar to a component, as both are designable. A differenza di un componente, un controllo produce però un'interfaccia utente.However, a control provides a user interface, while a component does not. Un controllo deve derivare da una delle classi di controllo di base: Control o Control.A control must derive from one of the base control classes: Control or Control.

Quando si crea un componenteWhen to Create a Component

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.If your class will be used on a design surface (such as the Windows Forms or Web Forms Designer) but has no user interface, it should be a component and implement IComponent, or derive from a class that directly or indirectly implements IComponent.

Le classi Component e MarshalByValueComponent sono implementazioni di base dell'interfaccia IComponent.The Component and MarshalByValueComponent classes are base implementations of the IComponent interface. 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.The main difference between these classes is that the Component class is marshaled by reference, while IComponent is marshaled by value. L'elenco seguente contiene indicazioni generali per gli implementatori.The following list provides broad guidelines for implementers.

  • Se il componente deve essere sottoposto a marshalling in base al riferimento, derivare la classe da Component.If your component needs to be marshaled by reference, derive from Component.

  • Se il componente deve essere sottoposto a marshalling in base al valore, derivare la classe da MarshalByValueComponent.If your component needs to be marshaled by value, derive from MarshalByValueComponent.

  • Se il componente non può derivare da una delle implementazioni di base a causa di un'ereditarietà singola, implementare IComponent.If your component cannot derive from one of the base implementations due to single inheritance, implement IComponent.

Classi di componentiComponent Classes

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.The System.ComponentModel namespace provides classes that are used to implement the run-time and design-time behavior of components and controls. 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.This namespace includes the base classes and interfaces for implementing attributes and type converters, binding to data sources, and licensing components.

Le classi di componenti principali sono:The core component classes are:

Alcune delle classi utilizzate per le licenze dei componenti sono:Some of the classes used for component licensing are:

Classi usate in genere per descrivere e rendere persistenti i componenti.Classes commonly used for describing and persisting components.

  • TypeDescriptor.TypeDescriptor. Offre informazioni sulle caratteristiche di un componente, ad esempio gli attributi, le proprietà e gli eventi.Provides information about the characteristics for a component, such as its attributes, properties, and events.

  • EventDescriptor.EventDescriptor. Include informazioni su un evento.Provides information about an event.

  • PropertyDescriptor.PropertyDescriptor. Include informazioni su una proprietà.Provides information about a property.

Risoluzione dei problemi relativi alla modifica di controlli e componentiTroubleshooting Control and Component Authoring
Viene illustrato come risolvere i problemi comuni.Explains how to fix common problems.

Vedere ancheSee also