Udostępnij przez


Przewodnik: debugowanie niestandardowych kontrolek formularzy systemu Windows w czasie projektowania

Podczas tworzenia kontrolki niestandardowej często konieczne jest debugowanie jego zachowania w czasie projektowania. Jest to szczególnie istotne w przypadku tworzenia projektanta niestandardowego dla kontrolki niestandardowej. Aby uzyskać szczegółowe informacje, zobacz Przewodnik: tworzenie kontrolki formularzy systemu Windows, która korzysta z funkcji programu Visual Studio Design-Time.

Kontrolki niestandardowe można debugować przy użyciu programu Visual Studio, podobnie jak w przypadku debugowania innych klas programu .NET Framework. Różnica polega na tym, że będziesz debugować oddzielne wystąpienie programu Visual Studio, które uruchamia kod kontrolki niestandardowej.

Ważne

Ten artykuł jest przeznaczony głównie dla klasycznego projektanta In-Process dla formularzy systemu Windows za pomocą programu .NET Framework. Procedury mogą nie być bezpośrednio stosowane lub w pełni zgodne z projektami przeznaczonymi dla platformy .NET (a nie .NET Framework).

W przypadku projektów .NET Framework w projektancie są w pełni obsługiwane tylko projekty, które mogą być kompilowane z ustawieniami docelowymi platformy Dowolne lub x64 . Projekty korzystające z składników ActiveX, COM lub innych składników 32-bitowych mogą mieć problemy ze zgodnością. Projektant platformy Out-Of_Process, obecnie w wersji zapoznawczej, rozwiązuje wiele z tych problemów ze zgodnością. Jednak funkcje czasu projektowania mogą nie działać tak dobrze jak 64-bitowy projektant In-Process. Aby włączyć "Out-Of-Process Framework Designer," przejdź do pozycji Narzędzia>Opcje>Środowisko>Funkcje w wersji zapoznawczej.

Aby uzyskać więcej informacji na temat projektanta Out-Of-Process, zobacz Zmiany projektanta od wprowadzenia platformy .NET Framework.

Tworzenie projektu

Pierwszym krokiem jest utworzenie projektu aplikacji. Użyjesz tego projektu do skompilowania aplikacji, która hostuje kontrolkę niestandardową.

W programie Visual Studio utwórz projekt aplikacji systemu Windows i nadaj mu nazwę DebuggingExample.

Tworzenie projektu biblioteki kontrolek

  1. Dodaj projekt Biblioteka kontrolek systemu Windows do rozwiązania.

  2. Dodaj nowy element UserControl do projektu DebugControlLibrary. Nadaj jej nazwę DebugControl.

  3. W Eksploratorze rozwiązań usuń domyślną kontrolkę projektu, usuwając plik kodu o podstawowej nazwie UserControl1.

  4. Skompiluj rozwiązanie.

Punkt kontrolny

Na tym etapie będziesz mieć możliwość wyświetlenia niestandardowej kontrolki w przyborniku.

Aby sprawdzić postęp, znajdź nową kartę o nazwie DebugControlLibrary Components (Składniki DebugControlLibrary ) i kliknij ją, aby ją wybrać. Po jego otwarciu zobaczysz kontrolkę wyświetlaną jako DebugControl z ikoną domyślną obok niej.

Dodawanie właściwości do kontrolki niestandardowej

Aby zademonstrować, że kod kontrolki niestandardowej działa w czasie projektowania, dodasz atrybut i ustawisz punkt przerwania w kodzie, który implementuje ten atrybut.

  1. Otwórz plik DebugControl w edytorze kodu. Dodaj następujący kod do definicji klasy:

    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. Skompiluj rozwiązanie.

Dodaj kontrolkę niestandardową do formularza hosta

Aby debugować zachowanie kontrolki niestandardowej w czasie projektowania, należy umieścić wystąpienie klasy kontrolki niestandardowej w formularzu hosta.

  1. W projekcie "DebuggingExample" otwórz aplikację Form1 w programie Windows Forms Designer.

  2. W przyborniku otwórz kartę DebugControlLibrary Components i przeciągnij instancję DebugControl na formularz.

  3. Znajdź właściwość niestandardową DemoString w oknie Właściwości . Należy pamiętać, że możesz zmienić jego wartość tak, jak dowolną inną właściwość. Należy również pamiętać, że po wybraniu DemoString właściwości ciąg opisu właściwości jest wyświetlany w dolnej części okna Właściwości .

Konfigurowanie projektu na potrzeby debugowania w czasie projektowania

Aby debugować zachowanie niestandardowej kontrolki w czasie projektowania, debugujesz oddzielne wystąpienie programu Visual Studio, które uruchamia kod kontrolki niestandardowej.

  1. Kliknij prawym przyciskiem myszy projekt DebugControlLibrary w Eksploratorze rozwiązań i wybierz pozycję Właściwości.

  2. W arkuszu właściwości DebugControlLibrary wybierz kartę Debugowanie .

    W sekcji Rozpocznij akcję wybierz pozycję Uruchom program zewnętrzny. Będziesz debugować oddzielne wystąpienie programu Visual Studio, dlatego kliknij wielokropek (przycisk wielokropka (...) w oknie Właściwości programu Visual Studio), aby przejść do środowiska IDE programu Visual Studio. Nazwa pliku wykonywalnego to devenv.exe, a jeśli zainstalowano ją w domyślnej lokalizacji, jego ścieżka to %ProgramFiles(x86)%\Microsoft Visual Studio\2019\<edition>\Common7\IDE.

  3. Kliknij przycisk OK, aby zamknąć okno dialogowe.

  4. Kliknij prawym przyciskiem myszy projekt DebugControlLibrary i wybierz polecenie Ustaw jako projekt startowy , aby włączyć tę konfigurację debugowania.

Debugowanie niestandardowych kontrolek w czasie projektowania

Teraz jesteś gotowy do debugowania swojej kontrolki niestandardowej, gdy działa w trybie projektowania. Po rozpoczęciu sesji debugowania zostanie utworzone nowe wystąpienie programu Visual Studio, które będzie używane do załadowania rozwiązania "DebuggingExample". Po otwarciu formularza Form1 w Projektancie formularzy zostanie utworzone wystąpienie kontrolki niestandardowej i zostanie uruchomione.

  1. Otwórz plik źródłowy DebugControl w Edytorze Kodów i umieść punkt przerwania na akcesorze właściwości Set.

  2. Naciśnij F5 , aby rozpocząć sesję debugowania. Zostanie utworzone nowe wystąpienie programu Visual Studio. Można odróżnić wystąpienia na dwa sposoby:

    • Wystąpienie debugowania ma słowo Uruchomione na pasku tytułu

    • Wystąpienie debugowania ma wyłączony przycisk Uruchom na pasku narzędzi Debugowanie

    Punkt przerwania został ustawiony w sesji debugowania.

  3. W nowym wystąpieniu programu Visual Studio otwórz rozwiązanie "DebuggingExample". Rozwiązanie można łatwo znaleźć, wybierając pozycję Ostatnie projekty z menu Plik . Plik rozwiązania "DebuggingExample.sln" zostanie wyświetlony jako ostatnio używany plik.

    Ważne

    Jeśli debugujesz projekt platformy .NET 6 lub nowszego programu Windows Forms, nie ładuj projektu, zamiast tego użyj tego wystąpienia programu Visual Studio, aby dołączyć debuger do procesu DesignToolsServer.exe . Wybierz element menu Debugowanie>Dołącz do procesu. Znajdź DesignToolsServer.exe na liście procesów i naciśnij przycisk Dołącz. Aby uzyskać więcej informacji, zobacz Zmiany projektanta od czasu .NET Framework.

  4. Otwórz formularz Form1 w Projektancie formularzy i wybierz kontrolkę DebugControl .

  5. Zmień wartość DemoString właściwości. Gdy zatwierdzisz zmianę, instancja debugowania Visual Studio przejmuje uwagę, a wykonywanie zatrzymuje się na punkcie przerwania. Możesz przejść krok po kroku przez metodę dostępu do właściwości, tak jak przez każdy inny kod.

  6. Aby zatrzymać debugowanie, zamknij hostowane wystąpienie programu Visual Studio lub wybierz przycisk Zatrzymaj debugowanie w wystąpieniu debugowania.

Dalsze kroki

Teraz, gdy możesz debugować niestandardowe kontrolki w czasie projektowania, istnieje wiele możliwości rozszerzenia interakcji kontrolki z środowiskiem IDE programu Visual Studio.

Zobacz także