Разработка Windows Forms на C#: практическое руководство
Разработка Windows Forms на C#: практическое руководство
После освоения консольных приложений логичным следующим шагом является создание насыщенных настольных приложений с помощью Windows Forms в Visual Studio. Это руководство проводит через каждый этап — от настройки проекта до добавления элементов управления, подключения событий и даже внедрения продвинутых компонентов вроде TreeView и PictureBox.
Основы Windows Forms
Приложение Windows Forms запускается нативно на настольной машине. Оно состоит из визуального макета и набора элементов управления (метки, текстовые поля, списки и т.д.), с которыми взаимодействует пользователь.
Ниже показана простая форма входа, созданная на C#:

Ключевые элементы в примере:
- Метки (Label), описывающие соседние текстовые поля.
- Текстовые поля (TextBox) для ввода имени пользователя и пароля.
- Кнопка (Button), запускающая логику аутентификации.
C# Hello World
Создадим базовую форму «Hello World», чтобы понять рабочий процесс Visual Studio.
- Откройте Visual Studio и выберите File > New > Project.

- Выберите категорию Windows и шаблон Windows Forms App (.NET Framework). Назовите проект
DemoApplicationи нажмите OK.
- В обозревателе решений появятся два файла:
Form1.cs— визуальная форма.Program.cs— точка входа приложения.
- Добавьте Label из панели инструментов, перетащите на форму и установите свойство
TextвHello World.
- Запустите приложение — форма отобразит «Hello World».

Добавление элементов управления на форму
Ниже приведено пошаговое руководство по сборке формы пользовательской информации, собирающей имя, адрес, город, пол и предпочтения курсов.
GroupBox – логическое разделение
Перетащите GroupBox на форму и переименуйте его свойство Text в User Details.

Label
Разместите две метки внутри GroupBox: «Name» и «Address».

TextBox
Добавьте два текстовых поля, назвав их txtName и txtAddress.

ListBox – выбор города
Вставьте ListBox с именем lstCity и заполните его «Mumbai», «Bangalore», «Hyderabad».

RadioButton – пол
Разместите два RadioButton: rdMale (Text: Male) и rdFemale (Text: Female).

CheckBox – предпочтения курсов
Добавьте два CheckBox: chkC (Text: C#) и chkASP (Text: ASP.NET).

Button – отправка
Положите Button с именем btnSubmit и Text = «Submit».

Обработка событий для элементов управления
События срабатывают в ответ на действия пользователя. Ниже два распространённых сценария.
Событие изменения выбора ListBox
Дважды кликните по элементу управления lstCity, чтобы сгенерировать обработчик события. Добавьте следующий код:
private void lstCity_SelectedIndexChanged(object sender, EventArgs e) {
var selected = lstCity.SelectedItem?.ToString();
if (!string.IsNullOrEmpty(selected))
MessageBox.Show($"You selected: {selected}");
}
При запуске появится MessageBox при выборе города.
Клик кнопки — Submit
Дважды кликните btnSubmit для создания обработчика и вставьте:
private void btnSubmit_Click(object sender, EventArgs e) {
var name = txtName.Text;
var address = txtAddress.Text;
MessageBox.Show($"Name: {name}\nAddress: {address}");
}
При нажатии «Submit» отображаются введённые данные.
Элементы управления TreeView и PictureBox
TreeView – иерархические данные
Перетащите TreeView на форму. Используйте свойство Nodes, чтобы добавить корневой узел «Root», затем дочерние узлы «Label», «Button», «CheckBox».

PictureBox – отображение изображений
Вставьте PictureBox, установите SizeMode в Zoom и назначьте изображение через свойство Image.

Резюме
- Windows Forms позволяет создавать настольные приложения, запускаемые непосредственно на машине пользователя.
- Элементы управления (метки, текстовые поля, списки, радиокнопки, чекбоксы) добавляются из панели инструментов.
- Продвинутые компоненты вроде
TreeViewиPictureBoxрасширяют возможности UI. - Обработчики событий реагируют на взаимодействия пользователя; клики кнопок и выбор в списке — самые частые.
Язык C
- Расширение GoPiGo v2 на Windows 10 IoT Core для Raspberry Pi 3
- Цикл for в C++: синтаксис, принцип работы и практические примеры
- Оператор switch-case в C++: синтаксис, применение и практические примеры
- Динамическое выделение массивов в C++: практическое руководство с примерами кода
- Структуры (struct) в C++: объяснение с практическим примером
- Освоение std::list в C++: синтаксис, функции и практические примеры
- Абстрактные классы в C#: практическое руководство с примерами кода
- Коллекции в C#: практическое руководство с реальными примерами
- calloc() в C: выделение обнулённой памяти и практический пример
- Counter в collections Python: эффективное подсчёт, обновление и арифметические операции