Felsöka kontroll- och komponentredigering
Det här avsnittet innehåller följande vanliga problem som uppstår vid utveckling av komponenter och kontroller:
Det går inte att lägga till kontroll i verktygslådan
Det går inte att felsöka användarkontrollen eller komponenten för Windows Forms
Händelsen utlöses två gånger i ärvd kontroll eller komponent
Design-Time fel: "Det gick inte att skapa komponentenskomponentnamn"
STAThreadAttribute
Komponentikonen visas inte i verktygslådan
Det går inte att lägga till kontroll i verktygslådan
Om du vill lägga till en anpassad kontroll som du skapade i ett annat projekt eller en kontroll från tredje part i Toolbox-måste du göra det manuellt. Om det aktuella projektet innehåller din kontroll eller komponent bör det visas i Toolbox- automatiskt. Mer information finns i Guide: Automatisk ifyllning av verktygslådan med anpassade komponenter.
Så här lägger du till en kontroll i verktygslådan
Högerklicka på Verktygslådan och välj Välj objektpå snabbmenyn.
Lägg till komponenten i dialogrutan Välj verktygslådeobjekt:
Om du vill lägga till en .NET Framework-komponent eller -kontroll klickar du på fliken .NET Framework-komponenter.
–eller–
Om du vill lägga till en COM-komponent eller ActiveX-kontroll klickar du på fliken COM-komponenter.
Om kontrollen visas i dialogrutan bekräftar du att den är markerad och klickar sedan på OK.
Kontrollen läggs till i Toolbox.
Om kontrollen inte visas i dialogrutan gör du följande:
Klicka på knappen Bläddra.
Bläddra till mappen som innehåller den .dll fil som innehåller din kontroll.
Välj filen .dll och klicka på Öppna.
Kontrollen visas i dialogrutan.
Bekräfta att kontrollen är markerad och klicka sedan på OK.
Kontrollen läggs till i Verktygslåda.
Det går inte att felsöka användarkontrollen eller komponenten för Windows Forms
Om din kontroll härleds från klassen UserControl kan du felsöka dess körningsbeteende med testcontainern. Mer information finns i How to: Test the Run-Time Behavior of a UserControl.
Andra anpassade kontroller och komponenter är inte fristående projekt. De måste finnas i ett program, till exempel ett Windows Forms-projekt. Om du vill felsöka en kontroll eller komponent måste du lägga till den i ett Windows Forms-projekt.
Så här felsöker du en kontroll eller komponent
På menyn Build klickar du på Build Solution för att skapa din lösning.
På menyn Fil väljer du Lägg tilloch sedan Nytt projekt för att lägga till ett testprojekt i programmet.
I dialogrutan Lägg till nytt projekt väljer du Windows-program för typen av projekt.
I Solution Explorerhögerklickar du på noden Referenser för det nya projektet. På snabbmenyn klickar du på Lägg till referens för att lägga till en referens till projektet som innehåller kontrollen eller komponenten.
Skapa en instans av din kontroll eller komponent i testprojektet. Om komponenten finns i Toolbox-kan du dra den till designerytan eller skapa instansen programmatiskt, som du ser i följande kodexempel.
Dim Component1 As New MyNeatComponent()
MyNeatComponent Component1 = new MyNeatComponent();
Nu kan du felsöka kontrollen eller komponenten som vanligt.
För mer information om felsökning, se Felsökning i Visual Studio och Genomgång: Felsökning av anpassade Windows-formulärkontroller vid designtid.
Händelsen utlöses två gånger i ärvd kontroll eller komponent
Detta beror troligen på en duplicerad Handles
-sats. Mer information finns i Felsöka ärvda händelsehanterare i Visual Basic.
Design-Time fel: "Det gick inte att skapa komponentens komponentnamn"
Komponenten eller kontrollen måste tillhandahålla en parameterlös konstruktor utan parametrar. När designmiljön skapar en instans av komponenten eller kontrollen försöker den inte ange några parametrar för konstruktörsöverlagringar som tar parametrar.
STAThreadAttribute
STAThreadAttribute informerar CLR (Common Language Runtime) om att Windows Forms använder entrådad lägenhetsmodell. Du kanske märker oavsiktligt beteende om du inte tillämpar det här attributet på windows Forms-programmets Main
-metod. Bakgrundsbilder kanske till exempel inte visas för kontroller som ListView. Vissa kontroller kan också kräva det här attributet för korrekt automatiskt komplettering och dra och släpp-beteende.
Komponentikonen visas inte i verktygslådan
När du använder ToolboxBitmapAttribute för att associera en ikon med din anpassade komponent visas inte bitmappen i verktygslådan för autogenererade komponenter. Om du vill se bitmappen laddar du om kontrollen med hjälp av dialogrutan Välj verktygslådeobjekt. Mer information finns i Hur du: Tillhandahåller en Toolbox-bitmap för en kontroll.
Se även
.NET Desktop feedback