Dela via


Skapa och använda komponenter i Visual Basic

En komponent är en klass som implementerar System.ComponentModel.IComponent gränssnittet eller som direkt eller indirekt härleds från en klass som implementerar IComponent. En .NET-komponent är ett objekt som kan återanvändas, kan interagera med andra objekt och ger kontroll över externa resurser och stöd för designtid.

En viktig funktion i komponenter är att de är designbara, vilket innebär att en klass som är en komponent kan användas i Visual Studio Integrated Development Environment. En komponent kan läggas till i verktygslådan, dras och släppas till ett formulär och manipuleras på en designyta. Grundläggande designtidsstöd för komponenter är inbyggt i .NET. En komponentutvecklare behöver inte utföra något ytterligare arbete för att dra nytta av de grundläggande designtidsfunktionerna.

En kontroll liknar en komponent eftersom båda är designbara. En kontroll tillhandahåller dock ett användargränssnitt, medan en komponent inte gör det. En kontroll måste härledas från någon av baskontrollklasserna: Control eller Control.

När du ska skapa en komponent

Om klassen ska användas på en designyta (till exempel Windows Forms eller Web Forms Designer) men inte har något användargränssnitt, bör den vara en komponent och implementera IComponent, eller härleda från en klass som direkt eller indirekt implementerar IComponent.

Klasserna Component och MarshalByValueComponent är grundläggande implementeringar av IComponent gränssnittet. Den största skillnaden mellan dessa klasser är att Component klassen är ordnad efter referens, medan IComponent den är ordnad efter värde. Följande lista innehåller allmänna riktlinjer för implementerare.

  • Om komponenten behöver ordnas efter referens härleder du från Component.

  • Om komponenten behöver ordnas efter värde härleder du från MarshalByValueComponent.

  • Om komponenten inte kan härledas från en av basimplementeringarna på grund av ett enda arv implementerar du IComponent.

Komponentklasser

Namnområdet System.ComponentModel innehåller klasser som används för att implementera körnings- och designtidsbeteendet för komponenter och kontroller. Det här namnområdet innehåller basklasserna och gränssnitten för att implementera attribut och typkonverterare, bindning till datakällor och licenskomponenter.

Kärnkomponentklasserna är:

Några av de klasser som används för komponentlicensiering är:

Klasser som ofta används för att beskriva och bevara komponenter.

  • TypeDescriptor. Innehåller information om egenskaperna för en komponent, till exempel dess attribut, egenskaper och händelser.

  • EventDescriptor. Innehåller information om en händelse.

  • PropertyDescriptor. Innehåller information om en egenskap.

Felsöka kontroll- och komponentredigering
Förklarar hur du åtgärdar vanliga problem.

Se även