Dela via


Genomgång: Felsöka anpassade Windows Forms-kontroller vid designtillfället

När du skapar en anpassad kontroll är det ofta nödvändigt att felsöka dess designtidsbeteende. Detta gäller särskilt om du skapar en anpassad designer för din anpassade kontroll. Mer information finns i genomgången : Skapa en Windows Forms-kontroll som drar nytta av funktionerna i Visual Studio Design-Time.

Du kan felsöka dina anpassade kontroller med Hjälp av Visual Studio, precis som du felsöker andra .NET Framework-klasser. Skillnaden är att du felsöker en separat instans av Visual Studio som kör koden för din anpassade kontroll.

Viktig

Den här artikeln är främst avsedd för den klassiska In-Process Designer för Windows Forms med .NET Framework. Procedurerna kanske inte är direkt tillämpliga eller helt kompatibla med projekt som är avsedda för .NET (inte .NET Framework).

För .NET Framework-projekt stöds endast projekt som kan kompileras med plattformsmålinställningarna Alla eller x64 fullt ut i Designer. Projekt som använder ActiveX, COM eller andra 32-bitars komponenter kan ha kompatibilitetsproblem. Out-Of_Process Framework Designer, som för närvarande är i förhandsversion, löser många av dessa kompatibilitetsproblem. Designtidsfunktioner kanske inte fungerar lika bra som 64-bitars In-Process Designer. Om du vill aktivera Out-Of-Process Framework Designer går du till Tools>Options>Environment>Preview Features.

För mer information om Out-Of-Process Designer, se Designerändringar sedan .NET Framework.

Skapa projektet

Det första steget är att skapa programprojektet. Du använder det här projektet för att skapa det program som är värd för den anpassade kontrollen.

Skapa ett Windows-programprojekt i Visual Studio och ge det namnet DebuggingExample.

Skapa kontrollbiblioteksprojektet

  1. Lägg till ett Windows Control Library- projekt i lösningen.

  2. Lägg till ett nytt UserControl- objekt i projektet DebugControlLibrary. Ge den namnet DebugControl.

  3. I Solution Explorertar du bort projektets standardkontroll genom att ta bort kodfilen med basnamnet UserControl1.

  4. Skapa lösningen.

Kontrollpunkt

Nu kan du se din anpassade kontroll i Toolbox-.

Om du vill kontrollera förloppet letar du upp den nya fliken med namnet DebugControlLibrary Components och klickar för att välja den. När den öppnas visas kontrollen som DebugControl med standardikonen bredvid.

Lägga till en egenskap i din anpassade kontroll

För att visa att koden för den anpassade kontrollen körs vid designtid lägger du till en egenskap och anger en brytpunkt i koden som implementerar egenskapen.

  1. Öppna DebugControl i Code Editor. Lägg till följande kod i klassdefinitionen:

    Private demoStringValue As String = Nothing
    <BrowsableAttribute(true)>
    Public Property DemoString() As String
    
        Get
            Return Me.demoStringValue
        End Get
    
        Set(ByVal value As String)
            Me.demoStringValue = value
        End Set
    
    End Property
    
    private string demoStringValue = null;
    [Browsable(true)]
    public string DemoString
    {
        get
        {
            return this.demoStringValue;
        }
        set
        {
            demoStringValue = value;
        }
    }
    
  2. Skapa lösningen.

Lägg till din anpassade kontroll i värdformuläret

Om du vill felsöka designtidsbeteendet för din anpassade kontroll placerar du en instans av den anpassade kontrollklassen i ett värdformulär.

  1. I projektet "DebuggingExample" öppnar du Form1 i Windows Forms Designer.

  2. I Toolboxöppnar du fliken DebugControlLibrary Components och drar en DebugControl-instans till formuläret.

  3. Leta upp den anpassade egenskapen DemoString i fönstret Egenskaper. Observera att du kan ändra dess värde på samma sätt som andra egenskaper. Observera också att när egenskapen DemoString är markerad visas egenskapens beskrivningssträng längst ned i fönstret Egenskaper.

Konfigurera projektet för debuggningsläge vid designtid

Om du vill felsöka den anpassade kontrollens designtidsbeteende felsöker du en separat instans av Visual Studio som kör koden för den anpassade kontrollen.

  1. Högerklicka på projektet DebugControlLibrary i Solution Explorer och välj Egenskaper.

  2. I egenskapsbladet DebugControlLibrary väljer du fliken Felsökning.

    I avsnittet Starta åtgärd väljer du Starta externt program. Du kommer att felsöka en separat instans av Visual Studio, så klicka på ellipsen (knappen Ellips (...) i fönstret Egenskaper i Visual Studio) för att bläddra efter Visual Studio IDE. Namnet på den exekverbara filen är devenv.exeoch om du har installerat på standardplatsen är sökvägen %ProgramFiles(x86)%\Microsoft Visual Studio\2019\<edition>\Common7\IDE.

  3. Välj OK för att stänga dialogrutan.

  4. Högerklicka på projektet DebugControlLibrary och välj Ange som StartUp Project för att aktivera den här felsökningskonfigurationen.

Felsöka din anpassade kontroll vid designtillfället

Nu är du redo att felsöka din anpassade kontroll när den körs i designläge. När du startar felsökningssessionen skapas en ny instans av Visual Studio och du använder den för att läsa in lösningen "FelsökningExample". När du öppnar Form1 i Forms Designerskapas en instans av din anpassade kontroll och börjar köras.

  1. Öppna källfilen DebugControl i Code Editor och placera en brytpunkt på Set-accessorn för egenskapen DemoString.

  2. Tryck på F5- för att starta felsökningssessionen. En ny instans av Visual Studio skapas. Du kan skilja mellan instanserna på två sätt:

    • Felsökningsinstansen har texten Running i titelraden

    • Felsökningsinstansen har knappen Starta i verktygsfältet Felsökning inaktiverat

    Brytpunkten anges i felsökningsinstansen.

  3. I den nya instansen av Visual Studio öppnar du lösningen "DebuggingExample". Du kan enkelt hitta lösningen genom att välja Senaste projekt från menyn Arkiv. Lösningsfilen "DebuggingExample.sln" visas som den senast använda filen.

    Viktig

    Om du felsöker ett .NET 6- eller senare Windows Forms-projekt läser du inte in projektet utan använder i stället den här instansen av Visual Studio för att koppla ett felsökningsprogram till DesignToolsServer.exe processen. Välj menyalternativet Felsökning>Anslut till process. Leta upp DesignToolsServer.exe i listan över processer och tryck på Bifoga. Mer information finns i Designerändringarna sedan .NET Framework.

  4. Öppna Formulär1 i Forms Designer och välj kontrollen DebugControl.

  5. Ändra värdet för egenskapen DemoString. När du genomför ändringen får felsökningssessionen av Visual Studio fokus och körningen stoppas vid brytpunkten. Du kan steg för steg genom egenskapsåtkomstorn precis som vilken annan kod som helst.

  6. Om du vill sluta felsöka avslutar du den värdbaserade instansen av Visual Studio eller väljer knappen Sluta felsöka i felsökningsinstansen.

Nästa steg

Nu när du kan felsöka dina anpassade kontroller vid designtillfället finns det många möjligheter att utöka kontrollens interaktion med Visual Studio IDE.

Se även