Основы работы с windows forms

Последнее обновление: 25.11.2023

  1. Глава 1. Введение в Windows Forms

    1. Первое приложение с .NET CLI

    2. Первое приложение в Visual Studio

    3. Создание графического приложения

  2. Глава 2. Работа с формами

    1. Основы форм

    2. Основные свойства форм

    3. Добавление форм. Взаимодействие между формами

    4. События в Windows Forms. События формы

    5. Создание непрямоугольных форм. Закрытие формы

  3. Глава 3. Контейнеры в Windows Forms

    1. Динамическое добавление элементов

    2. Элементы GroupBox, Panel и FlowLayoutPanel

    3. TableLayoutPanel

    4. Размеры элементов и их позиционирование в контейнере

    5. Панель вкладок TabControl и SplitContainer

  4. Глава 4. Элементы управления

    1. Кнопка

    2. Метки и ссылки

    3. Текстовое поле TextBox

    4. Элемент MaskedTextBox

    5. Элементы Radiobutton и CheckBox

    6. ListBox

    7. Элемент ComboBox

    8. Привязка данных в ListBox и ComboBox

    9. Элемент CheckedListBox

    10. Элементы NumericUpDown и DomainUpDown

    11. ImageList

    12. ListView

    13. TreeView

    14. TrackBar, Timer и ProgressBar

    15. DateTimePicker и MonthCalendar

    16. PictureBox

    17. WebBrowser

    18. Элемент NotifyIcon

    19. Окно сообщения MessageBox

    20. OpenFileDialog и SaveFileDialog

    21. FontDialog и ColorDialog

    22. ErrorProvider

  5. Глава 5. Меню и панели инструментов

    1. Панель инструментов ToolStrip

    2. Создание меню MenuStrip

    3. Строка состояния StatusStrip

    4. Контекстное меню ContextMenuStrip

  6. Глава 6. Привязка и паттерн Model-View-ViewModel

    1. Введение в привязку. Форматирование значения привязки

    2. Привязка объектов. Интерфейс INotifyPropertyChanged

    3. DataContext

    4. Паттерн Model-View-ViewModel

    5. Команды и взаимодействие с пользователем в MVVM

    6. Параметры команды

  • Глава 1. Введение в Windows Forms
    • Первое приложение с .NET CLI
    • Первое приложение в Visual Studio
    • Создание графического приложения
  • Глава 2. Работа с формами
    • Основы форм
    • Основные свойства форм
    • Добавление форм. Взаимодействие между формами
    • События в Windows Forms. События формы
    • Создание непрямоугольных форм. Закрытие формы
  • Глава 3. Контейнеры в Windows Forms
    • Динамическое добавление элементов
    • Элементы GroupBox, Panel и FlowLayoutPanel
    • TableLayoutPanel
    • Размеры элементов и их позиционирование в контейнере
    • Панель вкладок TabControl и SplitContainer
  • Глава 4. Элементы управления
    • Кнопка
    • Метки и ссылки
    • Текстовое поле TextBox
    • Элемент MaskedTextBox
    • Элементы Radiobutton и CheckBox
    • ListBox
    • Элемент ComboBox
    • Привязка данных в ListBox и ComboBox
    • Элемент CheckedListBox
    • Элементы NumericUpDown и DomainUpDown
    • ImageList
    • ListView
    • TreeView
    • TrackBar, Timer и ProgressBar
    • DateTimePicker и MonthCalendar
    • PictureBox
    • WebBrowser
    • Элемент NotifyIcon
    • Окно сообщения MessageBox
    • OpenFileDialog и SaveFileDialog
    • FontDialog и ColorDialog
    • ErrorProvider
  • Глава 5. Меню и панели инструментов
    • Панель инструментов ToolStrip
    • Создание меню MenuStrip
    • Строка состояния StatusStrip
    • Контекстное меню ContextMenuStrip
  • Глава 6. Привязка и паттерн Model-View-ViewModel
    • Введение в привязку. Форматирование значения привязки
    • Привязка объектов. Интерфейс INotifyPropertyChanged
    • DataContext
    • Паттерн Model-View-ViewModel
    • Команды и взаимодействие с пользователем в MVVM
    • Параметры команды

Помощь сайту

Номер карты:

4048415020898850

Last Updated :
25 Mar, 2025

Windows Forms (WinForms) is a GUI class library for building Windows desktop applications. Originally part of the .NET Framework, it is now supported in .NET Core, .NET 5+, .NET 8 (LTS), and .NET 9. Its main purpose is to provide an easier interface to develop applications for desktops, tablets, and PCs. It is also termed as the WinForms.

The applications developed using Windows Forms or WinForms are known as the Windows Forms Applications that run on the desktop computer. WinForms can be used only to develop Windows Forms Applications.

Creating First Windows Form

Let’s create the first Windows form here we are using Visual Studio Community 2022. Refer to this article which has a complete process on how to download Visual Studio.
Firstly we create a simple form that has a button and when we click on that button it shows a message let’s create it. These are the important steps to create a Windows form follow these steps as mentioned below:

Note: At the time of writing, Visual Studio Community 2022 is the latest stable version. However, check for newer versions like Visual Studio 2025 for updated features.

Step 1: Now open Visual Studio and different options are available there as of now.

CreateNewProject

Step 2: Now choose the Windows Forms App with C# and click on the next button.

Starting

Step 3: Now locate the project with the name here we are using the default name which is Form1 and it will open a form in the editor which we can further modify.

BasicStructure

Let’s understand the interface of Visual Studio Community 2022 for Windows forms

  • Editor Window (Main Window): Here, We will work with forms and code editing. Notice the layout of the form which is now blank. If we double-click the form then it will open the code for that.
  • Solution Explorer: A file manager for your project where you can navigate between forms, resources, and settings. For example, if we will select a file from this window then particular information will be displayed in the property window.
  • Properties Window: Allows you to modify UI elements such as colors, text alignment, and visibility. Also, we can change the properties of components or controls that will add to the forms.

In the image, we have two files that are open one Design and there is Form1.cs these two play a major role. We use the Form 1.cs file for the custom logic.

Step 4: Now open a Toolbox go to the view > Toolbox or ctrl + alt + x.

Toolbox: Provides drag-and-drop controls like buttons, text boxes, and labels to design the UI.

ToolBox

Step 5. Now open the common controls and drag and drop the button on the form where we want it to be placed.

Button1working

Step 6. Now open the properties of the button press right-click on the button and it will open the properties solution explorer now we can change the button name to Click here.

Properties

Step 7: Now again open the Toolbox and then click on the label and place where we want to show the message.

Label

Note: The Form1.Designer.cs file automatically generates UI code for Windows Forms. You should not manually edit this file, as changes may be lost. Instead, add event-handling logic in Form1.cs

Note: To handle user interactions, double-click a button to generate a Click event in Form1.cs. Here, you can define actions when the button is clicked.

Step 8. Now again double click on the button and it will open Form1.cs file and add the text when the button1 click action is triggered.

MessageBoxPrinting

Form1.cs file:

C#

namespace WinFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "Hello Geeks!";
        }

    }
}

Step 9: Now click on the start button or press F5 to execute the program.

Start

It will open a Windows form now to interact with the program.

Advantages

  • Comprehensive Controls: It comes up with a rich set of customizable controls (buttons, text boxes labels etc.) that makes it easier to use and allows more control through properties and event handling
  • Visual Designer: It comes up with the visual design helps to see the changes of form design and comes up with features like drag-and-drop for easy UI design.
  • Code Integration: A specially designed code editor for forms design helps to write application logic, handling events and data validation.
  • Use-cases: It is used in a variety of applications including the data entry tools, management system and business purposes.
  • Easy and optimal: Always become a first choice to make a lightweight desktop application for rapid development and come up with .NET support.

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Время чтения: 5 минут

Превью к статье о создании C++ Windows Forms проекта

Windows Forms — интерфейс программирования приложений, отвечающий за графический интерфейс пользователя. Он является частью .Net Framework и создан для того, чтобы упростить взаимодействие пользователя с элементами Win API. Причём не просто упростить, а буквально полностью скрыть низкоуровневое взаимодействие с графическими элементами путём создания набора базовых компонентов и классов. При этом используемые классы не привязаны к языку разработки, благодаря чему данный проект может использоваться как на родном для Microsoft C#, так и на других языках, например, C++, VB Net и F#. Но не смотря на свою кроссплатформенность в мире языков программирования, Windows Forms проекты легко создаются на C#, однако при попытке создания проекта на C++ возникает множество проблем.

Шаг 0. А вдруг получится сразу?

В настоящее время IDE, поддерживающих Windows forms, не так много — буквально одна только Visual Studio, более известная как просто «студия». Поэтому будем рассматривать создание и решение проблем именно в этой среде разработки. Первым шагом запустим студию, начнём создавать новый проект и попытаемся найти Windows forms проект для C++:

Создаём новый проект в студии

Создаём новый проект в студии

Ищем Winfows Forms для C++

Ищем Winfows Forms для C++

Если у вас более старая версия Visual Studio, то интерфейс будет выглядеть немного иначе, однако данная функциональность будет той же. Также не исключено, что у Вас может быть данный тип проекта для C++ (на некоторых версиях формы для C++ были доступны сразу после установки IDE). Если же у Вас, как и у нас поиск не дал нужных результатов, то переходим к следующему шагу.

Шаг 1. Создание CLR проекта

Поскольку непосредственно Windows Forms проекта у нас не оказалось, мы обхитрим студию и создадим пустой CLR проект на С++. Для этого в том же окне поиска необходимо найти и выбрать Новый CLR проект, ввести имя (если нужно, то поменять директорию расположения проекта) и немного подождать, пока студия сделает свою работу.

Ищем пустой CLR проект (.Net Framework)

Ищем пустой CLR проект (.Net Framework)

Создаём новый пустой CLR проект

Создаём новый пустой CLR проект

В результате Visual Stido создаст новый C++ CLR проект, который будет выглядеть примерно так:

Результат создания нового CLR проекта

Результат создания нового CLR проекта

Шаг 2. Добавить форму

Чтобы сделать CLR проект проектом Windows Forms, нужно просто добавить в него форму. Для этого в верхнем меню нужно выбрать ПроектДобавить новый элемент и в появившемся окне выбрать категорию Visual C++UI и затем выбрать Форма Windows Forms.

Проект - data-lazy-src=

Проект -> Добавить новый элемент

Visual C++ - data-lazy-src=

Visual C++ -> UI -> Форма Windows Forms

После данной операции нас ждёт разочарование в виде ошибки Исключение из HRESULT: 0x8000000A:

Вместо формы получили ошибку

Вместо формы получили ошибку

Шаг 3. Исправляем появившуюся ошибку

Данная ошибка появляется из-за того, что для создания окна формы приложению необходима основная программа, создающая форму и переключающая управление на неё, однако после добавления новой формы файл Form1.cpp предсказуемо создаётся пустым. Поэтому необходимо добавить основную программу в файл с формой:

#include "Form1.h"

#include <Windows.h>

using namespace имя_вашего_проекта;

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    Application::Run(gcnew Form1);
    return 0;
}

В результате код файла Form1.cpp будет выглядеть следующим образом:

Добавление основной программы к форме

Добавление основной программы к форме

Шаг 4. Переоткрыть проект

Всё, что теперь осталось сделать — это закрыть текущее решение, а затем открыть его снова. Для этого можно закрыть саму студию, а можно выбрать в верхнем меню ФайлЗакрыть решение, после чего в появившемся окне выбрать только что созданный проект и открыть его заново.

Форма создалась, можно добавлять компоненты

Форма создалась, можно добавлять компоненты

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

Программист, сооснователь programforyou.ru, в постоянном поиске новых задач и алгоритмов

Языки программирования: Python, C, C++, Pascal, C#, Javascript

Выпускник МГУ им. М.В. Ломоносова

Введение

Разработка оконных приложений – это создание программ с графическим интерфейсом пользователя (GUI), которые запускаются на операционной системе Windows. C# (произносится как «си-шарп») — мощный, типобезопасный объектно-ориентированный язык программирования, разработанный Microsoft, который отлично подходит для создания разнообразных приложений, включая настольные.

Выбор инструментария

Для разработки настольных приложений в C# обычно используются:

  • Windows Forms (WinForms): Подходит для традиционных настольных приложений с богатым пользовательским интерфейсом. Легко осваивается новичками.
  • Windows Presentation Foundation (WPF): Предлагает более современный подход к созданию GUI с развитыми возможностями по работе с графикой, анимацией и стилями.

Основы Windows Forms

Windows Forms — это библиотека классов в .NET Framework, предназначенная для быстрой разработки приложений с графическим интерфейсом. Она предлагает большое количество готовых элементов управления (кнопки, текстовые поля, метки и т.д.), что упрощает создание классических настольных приложений.

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

  1. Установка Visual Studio: Сначала установите Visual Studio. Выберите рабочую нагрузку “.NET desktop development”.
  2. Создание нового проекта: Откройте Visual Studio и выберите “Создать новый проект”. Выберите “Windows Forms App (.NET Framework)” и нажмите “Далее”.
  3. Настройка проекта: Введите имя и расположение проекта. Нажмите “Создать”.

Работа с формой

После создания проекта перед вами откроется главная форма приложения (Form1). Это основное окно вашего приложения.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
}

Добавление элементов управления

  1. Инструменты: На боковой панели “Инструменты” найдите элементы, такие как Button, Label, TextBox и перетащите их на форму.
  2. Настройка свойств: Выберите элемент на форме и настройте его свойства в окне “Свойства”. Например, измените текст кнопки или метки.

Пример: Создание простого приложения

Давайте создадим приложение, которое содержит одну кнопку и метку. При нажатии на кнопку текст метки изменится.

  1. Добавление элементов: Добавьте на форму Button и Label.
  2. Изменение свойств: Измените свойство Text кнопки на “Нажми меня” и метки на “Привет, мир!”.
  3. Добавление события: Дважды кликните по кнопке в дизайнере. Это создаст событие click для кнопки.
private void button1_Click(object sender, EventArgs e)
{
    label1.Text = "Привет, C#!";
}

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

Компиляция и запуск

Чтобы запустить приложение, нажмите кнопку “Запуск” (зеленый треугольник) на панели инструментов. Окно вашего приложения отобразится, и вы сможете взаимодействовать с элементами управления.

Windows Presentation Foundation (WPF)

Введение в WPF

WPF — это современная система для создания настольных приложений Windows с расширенной поддержкой графики, связывания данных и многих других функций. WPF использует XAML (eXtensible Application Markup Language) для определения интерфейса, что обеспечивает разделение логики приложения и его визуальной части.

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

  1. Создание проекта: Аналогично WinForms, выберите “Создать новый проект”, но на этот раз выберите “WPF App (.NET Framework)”.
  2. Работа с XAML: В основном окне проекта (обычно MainWindow.xaml) вы увидите XAML-код. Это язык разметки, используемый для создания интерфейса в WPF.
<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <!-- Элементы интерфейса -->
    </Grid>
</Window>

Основные компоненты интерфейса в WPF

В XAML элементы интерфейса организуются в древовидной структуре. Вы можете добавлять кнопки, метки, текстовые поля и другие элементы управления, а также устанавливать их свойства прямо в XAML.

Пример: Создание интерактивного интерфейса в WPF

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

при нажатии на кнопку.

  1. Добавление элементов в XAML:
    <Grid>
     <Button x:Name="myButton" Content="Нажми меня" Click="myButton_Click" />
     <TextBlock x:Name="myTextBlock" Text="Привет, мир!" />
    </Grid>
    
  2. Обработка событий:
    В коде C# (например, в файле MainWindow.xaml.cs) добавьте обработчик события для кнопки.
private void myButton_Click(object sender, RoutedEventArgs e)
{
    myTextBlock.Text = "Привет, WPF!";
}

Здесь, при нажатии на кнопку, метод myButton_Click вызывается, и текст в TextBlock изменяется.

Стилизация и макет

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

Продвинутые техники в WPF

Привязка данных (Data Binding)

Привязка данных — ключевая особенность WPF, позволяющая устанавливать соединения между элементами UI и логикой приложения (например, классами данных).

Основы привязки данных

В XAML привязка данных осуществляется с помощью синтаксиса {Binding}. Например, если у вас есть класс Person с свойством Name, вы можете привязать это свойство к TextBox таким образом:

<TextBox Text="{Binding Name}" />

Для работы привязки необходимо задать контекст данных (DataContext) — обычно это делается в коде C#:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        this.DataContext = new Person() { Name = "Алиса" };
    }
}

public class Person
{
    public string Name { get; set; }
}

Использование Ресурсов и Стилей

Ресурсы в WPF — это определения объектов, которые можно использовать в нескольких местах приложения. Стили в WPF позволяют определять внешний вид и поведение элементов управления.

Пример стиля
<Window.Resources>
    <Style x:Key="MyButtonStyle" TargetType="Button">
        <Setter Property="Background" Value="Navy"/>
        <Setter Property="Foreground" Value="White"/>
        <Setter Property="Padding" Value="10"/>
        <Setter Property="Margin" Value="5"/>
    </Style>
</Window.Resources>
<Button Style="{StaticResource MyButtonStyle}">Кнопка</Button>

Архитектура MVVM

MVVM (Model-View-ViewModel) — это шаблон проектирования, идеально подходящий для WPF. Он разделяет приложение на три основные части:

  • Модель (Model): Классы данных и логики приложения.
  • Представление (View): XAML-код интерфейса.
  • ViewModel: Посредник между View и Model, обрабатывает логику интерфейса и привязку данных.
Пример использования MVVM
  1. ViewModel: Создайте класс ViewModel с необходимыми свойствами и командами.
    public class MainViewModel : INotifyPropertyChanged
    {
        private string _name;
        public string Name
        {
            get => _name;
            set
            {
                _name = value;
                OnPropertyChanged(nameof(Name));
            }
        }
    
        // Реализация INotifyPropertyChanged...
    }
    
  2. Привязка в XAML:
    <Window.DataContext>
        <local:MainViewModel/>
    </Window.DataContext>
    <Grid>
        <TextBox Text="{Binding Name}" />
    </Grid>
    

Интеграция с другими технологиями

Разработка оконных приложений на C# не ограничивается только созданием интерфейса. Часто требуется интеграция с базами данных, веб-сервисами, файловыми системами и другими приложениями.

Работа с базами данных

  • Entity Framework: Популярный ORM (Object-Relational Mapping) фреймворк для интеграции с базами данных.
  • ADO.NET: Более низкоуровневый способ работы с базами данных для тех случаев, когда требуется больше контроля над процессом.

Сетевое взаимодействие

  • HttpClient: Для выполнения HTTP-запросов к веб-сервисам.
  • SignalR: Для реализации веб-сокетов и двустороннего общения между клиентом и сервером.

Заключение

Разработка оконных приложений в C# — это глубокая и многогранная область, включающая в себя различные подходы и технологии. От WinForms, идеально подходящих для простых и традиционных приложений, до WPF с его расширенными возможностями по созданию динамичных и визуально привлекательных интерфейсов. Понимание архитектуры MVVM, привязки данных и стилей поможет вам в создании мощных и легко поддерживаемых приложений. Интеграция с базами данных, веб-сервисами и использование различных библиотек и фреймворков откроют перед вами практически неограниченные возможности для создания качественных настольных приложений.

C# и его экосистема постоянно развиваются, поэтому всегда есть новые вещи, которые можно изучить и применить в своих проектах. Счастливого кодирования!

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Настройка qt creator windows 10
  • Как поменять картинку при включении компьютера windows 10
  • Как настроить изображение на ноутбуке windows 10
  • Топ 100 программ для windows 10
  • Windows 10 retail образ