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 czasu projektowania programu Visual Studio.
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 klasycznej Projektant 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 programu .NET Framework w Projektant są w pełni obsługiwane tylko projekty, które mogą kompilować 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 Framework w wersji zapoznawczej rozwiązuje wiele z tych problemów ze zgodnością. Jednak funkcje czasu projektowania mogą nie działać, a także 64-bitowe Projektant procesu. Aby włączyć platformę Out-Of-Process Framework Projektant, przejdź do pozycji Narzędzia>Opcje>środowiska>w wersji zapoznawczej.
Aby uzyskać więcej informacji na temat Projektant out-of-Process, zobacz Projektant zmienia się od 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
Dodaj projekt Biblioteka kontrolek systemu Windows do rozwiązania.
Dodaj nowy element UserControl do projektu DebugControlLibrary. Nadaj jej nazwę DebugControl.
W Eksplorator rozwiązań usuń domyślną kontrolkę projektu, usuwając plik kodu o podstawowej nazwie UserControl1.
Stwórz 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, należy dodać właściwość i ustawić punkt przerwania w kodzie, który implementuje właściwość .
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; } }
Stwórz rozwiązanie.
Dodawanie kontrolki niestandardowej do formularza hosta
Aby debugować zachowanie kontrolki niestandardowej w czasie projektowania, należy umieścić wystąpienie niestandardowej klasy kontrolek w formularzu hosta.
W projekcie "DebuggingExample" otwórz aplikację Form1 w Projektant formularzy systemu Windows.
W przyborniku otwórz kartę DebugControlLibrary Components (Składniki DebugControl) i przeciągnij wystąpienie DebugControl do formularza.
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 wybraniuDemoString
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.
Kliknij prawym przyciskiem myszy projekt DebugControlLibrary w Eksplorator rozwiązań i wybierz pozycję Właściwości.
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 przycisk wielokropka (), aby przejść do środowiska IDE programu Visual Studio. Nazwa pliku wykonywalnego to devenv.exe, a jeśli zainstalowano ją w domyślnej lokalizacji, jej ścieżka to %ProgramFiles(x86)%\Microsoft Visual Studio\2019\<edition>\Common7\IDE.
Kliknij przycisk OK, aby zamknąć okno dialogowe.
Kliknij prawym przyciskiem myszy projekt DebugControlLibrary i wybierz polecenie Ustaw jako projekt startowy, aby włączyć tę konfigurację debugowania.
Debugowanie niestandardowej kontrolki w czasie projektowania
Teraz możesz debugować kontrolkę niestandardową w trybie projektowania. Po rozpoczęciu sesji debugowania zostanie utworzone nowe wystąpienie programu Visual Studio i będzie ono używane do załadowania rozwiązania "DebuggingExample". Po otwarciu formularza Form1 w Projektant formularzy zostanie utworzone wystąpienie kontrolki niestandardowej i zostanie uruchomione.
Otwórz plik źródłowy DebugControl w Edytorze kodu i umieść punkt przerwania na
Set
metodzie dostępu doDemoString
właściwości .Naciśnij klawisz F5 , aby rozpocząć sesję debugowania. Zostanie utworzone nowe wystąpienie programu Visual Studio. Wystąpienia można rozróżniać 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 wystąpieniu debugowania.
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 nowszej wersji windows Forms, nie załaduj projektu, zamiast tego użyj tego wystąpienia programu Visual Studio, aby dołączyć debuger do procesu DesignToolsServer.exe . Wybierz element menu Debug Attach to process (Dołączanie debugowania>do przetwarzania). Znajdź plik DesignToolsServer.exe na liście procesów i naciśnij przycisk Dołącz. Aby uzyskać więcej informacji, zobacz Projektant zmienia się od programu .NET Framework.
Otwórz formularz Form1 w Projektant Formularzy i wybierz kontrolkę DebugControl.
Zmień wartość
DemoString
właściwości. Po zatwierdzeniu zmiany wystąpienie debugowania programu Visual Studio uzyskuje fokus i wykonywanie zatrzymuje się w punkcie przerwania. Możesz wykonać jeden krok przez metodę dostępu właściwości tak samo jak każdy inny kod.Aby zatrzymać debugowanie, zamknij hostowane wystąpienie programu Visual Studio lub wybierz przycisk Zatrzymaj debugowanie w wystąpieniu debugowania.
Następne 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.
Możesz użyć DesignMode właściwości Component klasy, aby napisać kod, który będzie wykonywany tylko w czasie projektowania. Aby uzyskać szczegółowe informacje, zobacz DesignMode.
Istnieje kilka atrybutów, które można zastosować do właściwości kontrolki w celu manipulowania interakcją kontrolki niestandardowej z projektantem. Te atrybuty można znaleźć w System.ComponentModel przestrzeni nazw.
Możesz napisać projektanta niestandardowego dla kontrolki niestandardowej. Zapewnia to pełną kontrolę nad środowiskiem projektowania przy użyciu rozszerzalnej infrastruktury projektanta uwidocznionej przez program Visual Studio. Aby uzyskać szczegółowe informacje, zobacz Przewodnik: tworzenie kontrolki formularzy systemu Windows, która korzysta z funkcji czasu projektowania programu Visual Studio.
Zobacz też
.NET Desktop feedback