Пример. Отладка в Windows Forms
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Форма Windows Forms — один из наиболее распространенных вариантов управляемых приложений. На основе формы Windows Forms создается стандартное приложение Windows. Можно реализовать данный примере на Visual Basic, C# или C++.
Для начала необходимо закрыть и открыть решения.
Чтобы подготовиться к выполнению данного пошагового руководства
- Если какое–либо решение уже открыто, закройте его. (В меню Файл выберите команду Закрыть решение.)
Создание новой формы Windows Forms.
Далее нам предстоит создать новую форму Windows Forms.
Чтобы создать форму Windows Forms для данного примера
- В меню Файл последовательно выберите пункты Создать и Проект. Откроется диалоговое окно Создание проекта .
- В области «Типы проектов» разверните узел Visual Basic, Visual C# или Visual C++, затем
- для Visual Basic или Visual C# выберите Классическое приложение Windows>Приложение Windows Form.
- Для Visual C++ выберите Классическое приложение Windows.
textBox1.Text = "Button was clicked!";textBox1.Text = "Button was clicked!"textBox1->Text = "Button was clicked!";Отладка формы
Теперь все готово для того, чтобы начать отладку.
Чтобы выполнить отладку формы Windows Forms, созданной для данного примера
- В окне исходного кода щелкните левое поле на той же строке, в которую добавляется текст:
textBox1.Text = "Button was clicked!";textBox1.Text = "Button was clicked!"textBox1->Text = "Button was clicked!";Появится красная точка, и текст строки будет выделен красным цветом. Красная точка представляет точку останова. Дополнительные сведения см. в разделе Точки останова. Если приложение запускается из отладчика, выполнение этого приложения будет приостановлено отладчиком на строке с помеченным кодом. После этого можно просмотреть состояние приложения и произвести его отладку.
Можно также щелкнуть правкой кнопкой мыши любую строку кода, выбрать пункт Точка останова, затем щелкнуть Вставить точку останова, чтобы добавить точку останова в эту строку.
Присоединение к приложению Windows Form для отладки
В Visual Studio вы можете подключить отладчик к выполняющемуся процессу. Если используется экспресс-выпуск, эта функция не поддерживается.
Присоединение к приложению Windows Form для отладки
В созданном ранее проекте щелкните левое поле, чтобы еще раз установить точка останова на добавленной строке:
textBox1.Text = "Button was clicked!"textBox1.Text = "Button was clicked!";textBox1->Text = "Button was clicked!";Связанный контент
- Отладка управляемого кода
- Безопасность отладчика
Учебник. Создание приложения WinForms на Visual Basic
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code 
В этом учебнике вы создадите приложение Visual Basic с пользовательским интерфейсом Windows Forms. Интегрированная среда разработки Visual Studio содержит все средства, необходимые для создания приложения Windows Forms.
В этом руководстве описано следующее:
- Создание проекта
- Добавление кнопки на форму
- Добавление метки и кода
- Выполнение приложения
Необходимые компоненты
Для выполнения шагов, описанных в этом учебнике, вам понадобится Visual Studio. Перейдите на страницу загрузки Visual Studio, чтобы получить бесплатную версию.
Для выполнения шагов, описанных в этом учебнике, вам понадобится Visual Studio. Перейдите на страницу загрузки Visual Studio, чтобы получить бесплатную версию.
Создание проекта
Создайте проект приложения Visual Basic. Для этого типа проекта уже имеются все нужные файлы шаблонов, что избавляет вас от лишней работы.
- Откройте Visual Studio.
- На начальном экране выберите Создать проект.

- В окне Создать проект выберите шаблон Приложение Windows Forms (.NET Framework) для Visual Basic. Вы можете уточнить условия поиска, чтобы быстро перейти к нужному шаблону. Например, введите Приложение Windows Forms в поле поиска. Затем выберите Visual Basic в списке языков и Windows в списке платформ.

Примечание. Если шаблон Приложение Windows Forms (.NET Framework) отсутствует, его можно установить из окна Создание проекта. В сообщении Не нашли то, что искали? выберите ссылку Установка других средств и компонентов.
После этого в Visual Studio Installer выберите рабочую нагрузку Разработка классических приложений .NET.
После этого в Visual Studio Installer выберите Изменить. Вам может быть предложено сохранить результаты работы.
- В поле Имя проекта окна Настроить новый проект введите HelloWorld. Затем выберите Создать. Новый проект открывается в Visual Studio.
- Откройте Visual Studio.
- На начальном экране выберите Создать проект.

- В окне Создать проект выберите шаблон Приложение Windows Forms (.NET Framework) для Visual Basic. Вы можете уточнить условия поиска, чтобы быстро перейти к нужному шаблону. Например, введите Приложение Windows Forms в поле поиска. Затем выберите Visual Basic в списке языков и Windows в списке платформ.

Примечание. Если шаблон Приложение Windows Forms (.NET Framework) отсутствует, его можно установить из окна Создание проекта. В сообщении Не нашли то, что искали? выберите ссылку Установка других средств и компонентов.
После этого в Visual Studio Installer выберите рабочую нагрузку Разработка классических приложений .NET.
После этого в Visual Studio Installer выберите Изменить. Вам может быть предложено сохранить результаты работы.

Добавление кнопки на форму
Когда вы выберете шаблон проекта Visual Basic и зададите имя файла, Visual Studio открывает форму. Форма является пользовательским интерфейсом Windows. Вы создадите приложение Hello World, добавив в форму элементы управления.
- В левой части интегрированной среды разработки Visual Studio выберите вкладку Панель элементов. Если вы ее не видите, выберите пункт Представление>Панель элементов в строке меню или воспользуйтесь комбинацией клавиш CTRL+ALT+X.
Если нужно, выберите значок Закрепить, чтобы закрепить окно Панель элементов. - Выберите элемент управления Кнопка и перетащите его на форму.

- В разделе Внешний вид окна Свойства введите для свойства TextНажать это и нажмите клавишу Ввод.
Если окно Свойства не отображается, его можно открыть в строке меню. Для этого выберите Вид>Окно свойств или нажмите клавишу F4. - В разделе Проектирование окна Свойства измените имя с Button1 на btnClickThis, а затем нажмите клавишу Ввод.
Примечание. Если список был упорядочен по алфавиту в окне Свойства, Button1 появится в разделе (DataBindings).
Добавление метки и кода
Теперь, когда мы добавили элемент управления »Кнопка» для создания действия, добавьте элемент управления «Метка», куда можно отправлять текст.

- Выберите элемент управления Метка в окне Панель элементов, а затем перетащите его на форму. Поместите его под кнопкой Нажать это.
- В разделе Проект или (DataBindings) окна Свойства измените имя Label1 на lblHelloWorld и нажмите клавишу Enter.
- В окне Form1.vb [Конструктор] дважды щелкните эту кнопку, чтобы открыть окно Form1.vb. Кроме того, можно развернуть узел Form1.vb в Обозревателе решений, а затем выбрать Form1.
- В окне Form1.vb между частными вложенными и конечными вложенными строками введите lblHelloWorld.Text = «Hello World!» как показано на следующем снимке экрана:
Выполнение приложения
Приложение готово к сборке и запуску.
- Выберите Пуск, чтобы запустить приложение.
В данном случае происходит следующее. В интегрированной среде разработки Visual Studio откроются окна Средства диагностики и Вывод. Вне этой среды откроется диалоговое окно Form1. Оно будет содержать вашу кнопку Нажать это и текст Label1. - Нажмите кнопку Нажмите это в диалоговом окне Form1.
Текст Label1 меняется на Hello World!. - Закройте диалоговое окно Form1, чтобы завершить работу приложения.
Следующие шаги
Чтобы узнать больше о Windows Forms, перейдите к следующему учебнику:
См. также
- Другие руководства по Visual Basic
- Руководства по C#
- Руководства по C++
Не могу открыть конструктор окна в Visual Studio 2019, вместо открытия конструктора открывается код.
H-p A Просветленный (46992) тогда это одно и то же что и 2) а вообще варианты такие: а) создать проект и форму нормально б) переставить студию в) объяснить конкретно что не получается с открытием констр.
It’s KrigerМастер (1137) 4 года назад
Не понял какого ху9 это лучший ответ.
Это г0вно а не ответ.
Vovik MininПрофи (748) 4 года назад
Трепло, ты хоть раз Визуал Студио то видел? Мелешь всякую чушь
H-p A Просветленный (46992) Работаю с ней с 2014 года)) А ты чего пришел оскорблять меня? Для жалобы модератору или для того чтобы послал тебя? Так сегодня 2 по цене 1!
Остальные ответы
Установите winformsdesigner.setup.vsix
It’s KrigerМастер (1137) 4 года назад
Чел, я уже давно перешёл на 2017 и всё норм
тебе просто нужно было открыть .NET Framework
Какой тип проекта? Не .NET Core случайно? Там дизайнер для WinForms надо отдельно качать в виде расширения, т. к. оно всё еще не финальное и находится в разработке.
Ну или создать проект .NET Framework.
It’s KrigerМастер (1137) 3 года назад
Спасибо чел, я создавал .NET Core, поэтому не было конструктора.
Кирилл А Мастер (1783) +++
Кирилл АМастер (1783) 3 года назад
Может .net версии другой
Если всё-таки разобрался как это сделать, то напиши плес) 0)))
It’s KrigerМастер (1137) 3 года назад
Вообще моя ошибка была в том, что я создавал проект не .NET Framework, а .NET Core, к которому надо дополнительно ручками докачивать конструктор
It’s Kriger, подскажите пожалуйста как это сделать через инсталлер визуала?
одна из возможных проблем может быть что ты создал еще один класс в коде формы, первый класс должен быть главным (имя формы : Form) это очень важно, если первый класс будет какой-то другой то это уже будет не форма
Mail SystemУченик (172) 3 года назад
Красавчег! Помог! Спасибо!
Сергей СмирновУченик (149) 3 года назад
Кто бы мог подумать. Спасибо.
X SetПрофи (564) 1 год назад
Круто. Реально они столько граблей там наставили с этими искусственными объектами, и не сообщает же зараза в чём беда 🙂
Возможно в файле с классом формы есть ещё какие-то классы. Стоит попробовать переместить их в отдельный файл, оставив в том же пространстве имён, разумеется.
Как правильно вызвать одну форму из другой?
Создаю в MS Visual Studio проект Basic Windows Forms. В папке появляется два файла Form1.vb и Form1.Designer.vb и открывается конструктор форм.
Теперь добавляю вторую форму.
И хочу из одной формы вызвать другую. Когда я пишу Form2.Show() ‘ появляется такая ошибка: Ссылка на член, не являющийся общим, должна быть ссылкой на объект.
Слышал, что если написать InitializeComponent() ‘ всё сработает, но нет, выходит, что «InitializeComponent» не объявлен. Может быть недоступен из-за своего уровня защиты
Если создаю формы вручную в этом же файле и без конструктора, то вроде бы работает.
Так же, я в Интернете находил похожие примеры кода, запускал и они работают. Тогда почему не работает то, что я написал в своём проекте?
Может какие ссылки в проект не добавлены или что с настройками?
Вот, к примеру,. Можете ли вы посмотреть этот архив Project1test111.zip и сказать, где ошибка и как надо правильно?
Спрашивал на других форумах, но мне так ничего не подсказали.
Main.vb
Public Class MainClass Private _IsChild As Boolean Public Shared sLogin As String, sPassword As String Public Sub New() MyClass.New(False) End Sub Public Sub New(isChild As Boolean) ' This call is required by the designer. InitializeComponent() ' "InitializeComponent" не объявлен. Может быть недоступен из-за своего уровня защиты. ' Add any initialization after the InitializeComponent() call. _IsChild = isChild End Sub Shared Sub Main() LoginForm1.Show() ' Ссылка на член, не являющийся общим, должна быть ссылкой на объект. MsgBox(sLogin & " : " & sPassword) End Sub End Class
LoginForm1.vb
Public Class LoginForm1 Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click MainClass.sLogin = UsernameTextBox.Text MainClass.sPassword = PasswordTextBox.Text Me.Close() End Sub Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click Me.Close() End Sub End Class
LoginForm1.Designer.vb
_ _ Partial Class LoginForm1 Inherits System.Windows.Forms.Form 'Форма переопределяет dispose для очистки списка компонентов. _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then components.Dispose() End If Finally MyBase.Dispose(disposing) End Try End Sub Friend WithEvents LogoPictureBox As System.Windows.Forms.PictureBox Friend WithEvents UsernameLabel As System.Windows.Forms.Label Friend WithEvents PasswordLabel As System.Windows.Forms.Label Friend WithEvents UsernameTextBox As System.Windows.Forms.TextBox Friend WithEvents PasswordTextBox As System.Windows.Forms.TextBox Friend WithEvents OK As System.Windows.Forms.Button Friend WithEvents Cancel As System.Windows.Forms.Button 'Является обязательной для конструктора форм Windows Forms Private components As System.ComponentModel.IContainer 'Примечание: следующая процедура является обязательной для конструктора форм Windows Forms 'Для ее изменения используйте конструктор форм Windows Form. 'Не изменяйте ее в редакторе исходного кода. _ Private Sub InitializeComponent() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(LoginForm1)) Me.LogoPictureBox = New System.Windows.Forms.PictureBox() Me.UsernameLabel = New System.Windows.Forms.Label() Me.PasswordLabel = New System.Windows.Forms.Label() Me.UsernameTextBox = New System.Windows.Forms.TextBox() Me.PasswordTextBox = New System.Windows.Forms.TextBox() Me.OK = New System.Windows.Forms.Button() Me.Cancel = New System.Windows.Forms.Button() CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'LogoPictureBox ' Me.LogoPictureBox.Image = CType(resources.GetObject("LogoPictureBox.Image"), System.Drawing.Image) Me.LogoPictureBox.Location = New System.Drawing.Point(0, 0) Me.LogoPictureBox.Name = "LogoPictureBox" Me.LogoPictureBox.Size = New System.Drawing.Size(165, 193) Me.LogoPictureBox.TabIndex = 0 Me.LogoPictureBox.TabStop = False ' 'UsernameLabel ' Me.UsernameLabel.Location = New System.Drawing.Point(172, 24) Me.UsernameLabel.Name = "UsernameLabel" Me.UsernameLabel.Size = New System.Drawing.Size(220, 23) Me.UsernameLabel.TabIndex = 0 Me.UsernameLabel.Text = "&Имя пользователя" Me.UsernameLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'PasswordLabel ' Me.PasswordLabel.Location = New System.Drawing.Point(172, 81) Me.PasswordLabel.Name = "PasswordLabel" Me.PasswordLabel.Size = New System.Drawing.Size(220, 23) Me.PasswordLabel.TabIndex = 2 Me.PasswordLabel.Text = "&Пароль" Me.PasswordLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'UsernameTextBox ' Me.UsernameTextBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest Me.UsernameTextBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.HistoryList Me.UsernameTextBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper Me.UsernameTextBox.Location = New System.Drawing.Point(174, 44) Me.UsernameTextBox.MaxLength = 70 Me.UsernameTextBox.Name = "UsernameTextBox" Me.UsernameTextBox.Size = New System.Drawing.Size(220, 22) Me.UsernameTextBox.TabIndex = 1 ' 'PasswordTextBox ' Me.PasswordTextBox.Location = New System.Drawing.Point(174, 101) Me.PasswordTextBox.Name = "PasswordTextBox" Me.PasswordTextBox.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42) Me.PasswordTextBox.Size = New System.Drawing.Size(220, 22) Me.PasswordTextBox.TabIndex = 3 ' 'OK ' Me.OK.Location = New System.Drawing.Point(197, 161) Me.OK.Name = "OK" Me.OK.Size = New System.Drawing.Size(94, 23) Me.OK.TabIndex = 4 Me.OK.Text = "&ОК" ' 'Cancel ' Me.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel Me.Cancel.Location = New System.Drawing.Point(300, 161) Me.Cancel.Name = "Cancel" Me.Cancel.Size = New System.Drawing.Size(94, 23) Me.Cancel.TabIndex = 5 Me.Cancel.Text = "&Отмена" ' 'LoginForm1 ' Me.AcceptButton = Me.OK Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.CancelButton = Me.Cancel Me.ClientSize = New System.Drawing.Size(401, 192) Me.Controls.Add(Me.Cancel) Me.Controls.Add(Me.OK) Me.Controls.Add(Me.PasswordTextBox) Me.Controls.Add(Me.UsernameTextBox) Me.Controls.Add(Me.PasswordLabel) Me.Controls.Add(Me.UsernameLabel) Me.Controls.Add(Me.LogoPictureBox) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog Me.MaximizeBox = False Me.MinimizeBox = False Me.Name = "LoginForm1" Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent Me.Text = "LoginForm1" CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() End Sub End Class
Как сделать, чтобы именно этот пример заработал?
- Вопрос задан более трёх лет назад
- 2153 просмотра