Návod: Ladění vlastních ovládacích prvků model Windows Forms v době návrhu

Při vytváření vlastního ovládacího prvku často zjistíte, že je nutné ladit jeho chování v době návrhu. To platí zejména v případě, že vytváříte vlastního návrháře pro vlastní ovládací prvek. Podrobnosti najdete v tématu Návod: Vytvoření ovládacího prvku model Windows Forms, který využívá funkce návrhu sady Visual Studio.

Vlastní ovládací prvky můžete ladit pomocí sady Visual Studio stejně jako jakékoli jiné třídy rozhraní .NET Framework. Rozdíl je v tom, že budete ladit samostatnou instanci sady Visual Studio, která spouští kód vlastního ovládacího prvku.

Důležité

Tento článek je primárně určený pro klasický návrhář v procesu pro model Windows Forms s rozhraním .NET Framework. Postupy nemusí být přímo použitelné nebo plně kompatibilní s projekty, které cílí na .NET (nikoli .NET Framework).

Pro projekty rozhraní .NET Framework jsou v Návrháři plně podporovány pouze projekty, které lze kompilovat s nastavením cíle platformy Any nebo x64 . U projektů, které používají technologie ActiveX, modelu COM nebo jiných 32bitových komponent, mohou být problémy s kompatibilitou. Návrhář rozhraní Out-Of_Process, který je aktuálně ve verzi Preview, řeší řadu těchto problémů s kompatibilitou. Funkce návrhu ale nemusí fungovat ani 64bitový návrhář v procesu. Pokud chcete povolit Návrhář architektury mimo proces, přejděte do >části Nástroje Možnosti>prostředí>Ve verzi Preview.

Další informace o návrháři mimo proces naleznete v tématu Změny návrháře od rozhraní .NET Framework.

Vytvoření projektu

Prvním krokem je vytvoření projektu aplikace. Tento projekt použijete k sestavení aplikace, která je hostitelem vlastního ovládacího prvku.

V sadě Visual Studio vytvořte projekt aplikace systému Windows a pojmenujte jej DebugExample.

Vytvoření projektu knihovny ovládacích prvků

  1. Přidejte do řešení projekt knihovny ovládacích prvků systému Windows.

  2. Přidejte novou položku UserControl do projektu DebugControlLibrary. Pojmenujte ji DebugControl.

  3. V Průzkumník řešení odstraňte výchozí ovládací prvek projektu odstraněním souboru kódu se základním názvem UserControl1.

  4. Sestavte řešení.

CheckPoint

V tuto chvíli uvidíte vlastní ovládací prvek v sadě nástrojů.

Chcete-li zkontrolovat průběh, vyhledejte novou kartu s názvem DebugControlLibrary Components a kliknutím ji vyberte. Po otevření se ovládací prvek zobrazí jako DebugControl s výchozí ikonou vedle něj.

Přidání vlastnosti do vlastního ovládacího prvku

Chcete-li předvést, že kód vlastního ovládacího prvku běží v době návrhu, přidáte vlastnost a nastavíte zarážku v kódu, který implementuje vlastnost.

  1. Otevřete DebugControl v editoru kódu. Do definice třídy přidejte následující kód:

    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. Sestavte řešení.

Přidání vlastního ovládacího prvku do formuláře hostitele

Chcete-li ladit chování návrhu vlastního ovládacího prvku, umístíte instanci vlastní třídy ovládacích prvků do hostitelského formuláře.

  1. V projektu DebuggingExample otevřete Form1 v návrháři model Windows Forms.

  2. Na panelu nástrojů otevřete kartu DebugControlLibrary Components a přetáhněte instanci DebugControl do formuláře.

  3. DemoString Najděte vlastní vlastnost v okně Vlastnosti. Všimněte si, že její hodnotu můžete změnit stejně jako jakoukoli jinou vlastnost. Všimněte si také, že když DemoString je vlastnost vybrána, zobrazí se v dolní části okna Vlastnosti řetězec popisu vlastnosti.

Nastavení projektu pro ladění v době návrhu

Pokud chcete ladit chování návrhu vlastního ovládacího prvku, budete ladit samostatnou instanci sady Visual Studio, na které běží kód vlastního ovládacího prvku.

  1. Pravým tlačítkem myši klikněte na projekt DebugControlLibrary v Průzkumník řešení a vyberte Vlastnosti.

  2. V seznamu vlastností DebugControlLibrary vyberte kartu Ladění.

    V části Spustit akci vyberte Spustit externí program. Budete ladit samostatnou instanci sady Visual Studio, takže kliknutím na tlačítko se třemi tečkami (The Ellipsis button (...) in the Properties window of Visual Studio) vyhledejte integrované vývojové prostředí sady Visual Studio. Název spustitelného souboru je devenv.exe a pokud jste ho nainstalovali do výchozího umístění, jeho cesta je %ProgramFiles(x86)%\Microsoft Visual Studio\2019\<edition>\Common7\IDE.

  3. Zvolte OK a zavřete dialogové okno.

  4. Klikněte pravým tlačítkem myši na projekt DebugControlLibrary a výběrem možnosti Nastavit jako spustit projekt povolte tuto konfiguraci ladění.

Ladění vlastního ovládacího prvku v době návrhu

Teď jste připraveni ladit vlastní ovládací prvek při spuštění v režimu návrhu. Když spustíte ladicí relaci, vytvoří se nová instance sady Visual Studio a použijete ji k načtení řešení DebuggingExample. Když v Návrháři formulářů otevřete formulář 1, vytvoří se instance vlastního ovládacího prvku a spustí se.

  1. Otevřete zdrojový soubor DebugControl v Editoru kódu a umístěte zarážku na Set příslušenství DemoString vlastnosti.

  2. Stisknutím klávesy F5 spusťte ladicí relaci. Vytvoří se nová instance sady Visual Studio. Mezi instancemi můžete rozlišovat dvěma způsoby:

    • Instance ladění obsahuje slovo Spuštěno v záhlaví.

    • Instance ladění má na panelu nástrojů Ladění zakázané tlačítko Start.

    Zarážka je nastavená v instanci ladění.

  3. V nové instanci sady Visual Studio otevřete řešení DebuggingExample. Řešení můžete snadno najít tak, že v nabídce Soubor vyberete Poslední projekty. Soubor řešení DebuggingExample.sln bude uveden jako naposledy použitý soubor.

    Důležité

    Pokud ladíte projekt .NET 6 nebo novější model Windows Forms, nenačtěte místo toho tento projekt pomocí této instance sady Visual Studio pro připojení ladicího programu k procesu DesignToolsServer.exe. Vyberte položku nabídky Připojit k ladění>pro proces. Najděte DesignToolsServer.exe v seznamu procesů a stiskněte Připojit. Další informace naleznete v tématu Změny návrháře od rozhraní .NET Framework.

  4. Otevřete formulář 1 v Návrháři formulářů a vyberte ovládací prvek DebugControl.

  5. Změňte hodnotu DemoString vlastnosti. Když změnu potvrdíte, instance ladění sady Visual Studio získá fokus a provádění se zastaví na zarážce. Přístup k vlastnosti můžete procházet jedním krokem stejně jako jakýkoli jiný kód.

  6. Chcete-li zastavit ladění, ukončete hostované instance sady Visual Studio nebo vyberte tlačítko Zastavit ladění v instanci ladění.

Další kroky

Teď, když můžete v době návrhu ladit vlastní ovládací prvky, existuje mnoho možností, jak rozšířit interakci ovládacího prvku s integrovaným vývojovém prostředím sady Visual Studio.

  • Vlastnost Component třídy můžete použít DesignMode k napsání kódu, který se spustí pouze v době návrhu. Podrobnosti najdete v tématu DesignMode.

  • Existuje několik atributů, které můžete použít u vlastností ovládacího prvku pro manipulaci s interakcí vlastního ovládacího prvku s návrhářem. Tyto atributy najdete v System.ComponentModel oboru názvů.

  • Můžete napsat vlastního návrháře pro vlastní ovládací prvek. Díky tomu máte úplnou kontrolu nad prostředím návrhu pomocí infrastruktury rozšiřitelného návrháře vystavené sadou Visual Studio. Podrobnosti najdete v tématu Návod: Vytvoření ovládacího prvku model Windows Forms, který využívá funkce návrhu sady Visual Studio.

Viz také