Пошаговое руководство. Отладка пользовательских элементов управления Windows Forms во время разработки

При создании пользовательского элемента управления зачастую требуется отладка его поведения во время разработки. Это особенно важно, если вы разрабатываете пользовательский конструктор для пользовательского элемента управления. Подробные сведения см. в статье Пошаговое руководство: Создание элемента управления Windows Forms, в котором используются преимущества функций Visual Studio, применяемых во время разработки.

Отладка пользовательских элементов управления с помощью Visual Studio осуществляется так же, как и в случае любых других классов .NET Framework. Разница заключается в том, что вы будете отлаживать отдельный экземпляр Visual Studio, в котором выполняется код пользовательского элемента управления.

Важно!

Эта статья предназначена в основном для классического конструктора in-Process Designer для Windows Forms с платформа .NET Framework. Процедуры могут быть не применимы напрямую или полностью совместимы с проектами, предназначенными для .NET (не платформа .NET Framework).

Для платформа .NET Framework проектов в конструкторе полностью поддерживаются только проекты, которые могут компилироваться с параметрами целевой платформы Any или x64. Проекты, использующие ActiveX, COM или другие 32-разрядные компоненты, могут иметь проблемы с совместимостью. Конструктор платформы out-Of_Process, в настоящее время в предварительной версии, устраняет многие из этих проблем совместимости. Однако функциональные возможности во время разработки могут не работать, а также 64-разрядный конструктор процессов. Чтобы включить конструктор внепроцессной платформы, перейдите к функциям предварительной версии среды>инструментов>>.

Дополнительные сведения о внепроцессном конструкторе см. в разделе "Изменения конструктора с момента платформа .NET Framework".

Создание проекта

Первым шагом является создание проекта приложения. В этом проекте выполняется сборка приложения, в котором размещается пользовательский элемент управления.

В Visual Studio создайте новый проект приложения Windows и назовите его DebuggingExample.

Создание проекта библиотеки элементов управления

  1. Добавьте проект библиотеки элементов управления Windows в решение.

  2. Добавьте новый элемент UserControl в проект DebugControlLibrary. Назовите его DebugControl.

  3. В обозревателе решений удалите элемент управления проекта по умолчанию путем удаления файла кода с базовым именем UserControl1.

  4. Постройте решение.

Контрольная точка

С этого момента пользовательский элемент управления будет отображаться на панели элементов.

Чтобы проверить ход выполнения, найдите новую вкладку Компоненты DebugControlLibrary и щелкните ее, чтобы выбрать. Когда она откроется, элемент управления будет отображаться как DebugControl, а рядом будет находиться значок по умолчанию.

Добавление свойства в пользовательский элемент управления

Чтобы продемонстрировать, что код пользовательского элемента управления выполняется во время разработки, вы добавите свойство и установите точку останова в коде, реализующем свойство.

  1. Откройте DebugControl в редакторе кода. Добавьте в определение класса следующий код:

    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. Постройте решение.

Добавление пользовательского элемента управления в форму основного приложения

Для отладки поведения пользовательского элемента управления во время разработки вы поместите экземпляр класса пользовательского элемента управления на форму основного приложения.

  1. В проекте DebuggingExample откройте форму Form1 в конструкторе Windows Forms.

  2. На панели элементов откройте вкладку Компоненты DebugControlLibrary и перетащите экземпляр DebugControl на форму.

  3. В окне Свойства найдите пользовательское свойство DemoString. Обратите внимание, что его значение можно изменить так же, как и значение любого другого свойства. Кроме того, обратите внимание, что при выборе свойства DemoString строка описания свойства отображается в нижней части окна Свойства.

Настройка проекта для отладки во время разработки

Чтобы отладить поведение пользовательского элемента управления во время разработки, вы будете отлаживать отдельный экземпляр Visual Studio, в котором выполняется код пользовательского элемента управления.

  1. В обозревателе решений щелкните проект DebugControlLibrary правой кнопкой мыши и выберите пункт Свойства.

  2. На странице свойств DebugControlLibrary перейдите на вкладку Отладка.

    В разделе Действие при запуске выберите Запуск внешней программы. Вы будете отлаживать отдельный экземпляр Visual Studio, поэтому нажмите кнопку с многоточием (The Ellipsis button (...) in the Properties window of Visual Studio), чтобы перейти к интегрированной среде разработки Visual Studio. Имя исполняемого файла — devenv.exe. Если вы установили его в расположение по умолчанию, путь к нему — %ProgramFiles(x86)%\Microsoft Visual Studio\2019\<edition>\Common7\IDE.

  3. Выберите OK, чтобы закрыть диалоговое окно.

  4. Щелкните правой кнопкой мыши проект DebugControlLibrary и выберите пункт Назначить запускаемым проектом, чтобы включить эту конфигурацию отладки.

Отладка пользовательского элемента управления во время разработки

Теперь все готово к отладке пользовательского элемента управления при запуске в режиме конструктора. При запуске сеанса отладки будет создан новый экземпляр Visual Studio, который будет использоваться для загрузки решения DebuggingExample. При открытии формы Form1 в конструкторе форм будет создан и запущен экземпляр пользовательского элемента управления.

  1. Откройте исходный файл DebugControl в редакторе кода и поместите точку останова в методе доступа Set свойства DemoString.

  2. Нажмите F5 для запуска сеанса отладки. Создается новый экземпляр Visual Studio. Экземпляры можно различать двумя способами:

    • В заголовке экземпляра отладки есть слово Выполняется.

    • Кнопка Пуск на панели инструментов Отладка экземпляра отладки неактивна.

    Точка останова задается в экземпляре отладки.

  3. В новом экземпляре Visual Studio откройте решение DebuggingExample. Чтобы найти решение, выберите Последние проекты в меню Файл. Файл решения DebuggingExample.sln будет указан в качестве последнего использованного файла.

    Важно!

    Если вы выполняете отладку проекта .NET 6 или более поздней версии Windows Forms, не загружайте проект, а используйте этот экземпляр Visual Studio для подключения отладчика к процессу DesignToolsServer.exe . Выберите пункт меню Отладка >Подключить для обработки. Выберите процесс DesignToolsServer.exe из списка процессов и нажмите кнопку Подключить. Дополнительные сведения см. в разделе "Изменения конструктора с момента платформа .NET Framework".

  4. Откройте форму Form1 в конструкторе форм и выберите элемент управления DebugControl.

  5. Измените значение свойства DemoString . При фиксации изменения экземпляр отладки Visual Studio оказывается в фокусе и выполнение останавливается в точке останова. Вы можете пошагово выполнить метод доступа свойства аналогично любому другому коду.

  6. Чтобы остановить отладку, закройте размещенный экземпляр Visual Studio или нажмите кнопку Остановить отладку в экземпляре отладки.

Следующие шаги

Теперь, когда умеете отлаживать пользовательские элементы управления во время разработки, открывается множество возможностей для расширения взаимодействия элемента управления с интегрированной средой разработки Visual Studio.

См. также