- Введение в Windows Forms
- Создание графического приложения
- Запуск приложения
- Руководство по классическим приложениям (Windows Forms .NET) Desktop Guide (Windows Forms .NET)
- Введение Introduction
- Зачем нужна миграция с .NET Framework Why migrate from .NET Framework
- Создание многофункциональных интерактивных пользовательских интерфейсов Build rich, interactive user interfaces
- Создание форм и элементов управления Create forms and controls
- Отображение и обработка данных Display and manipulate data
- Развертывание приложений на клиентских компьютерах Deploy apps to client computers
Введение в Windows Forms
Для создания графических интерфейсов с помощью платформы .NET применяются разные технологии — Window Forms, WPF, приложения для магазина Windows Store (для ОС Windows 8/8.1/10). Однако наиболее простой и удобной платформой до сих пор остается Window Forms или формы. Данное руководство ставит своей целью дать понимание принципов создания графических интерфейсов с помощью технологии WinForms и работы основных элементов управления.
Создание графического приложения
Для создания графического проекта нам потребуется среда разработки Visual Studio. Поскольку наиболее распространенная пока версия Visual Studio 2013, то для данного руководства я буду использовать бесплатную версию данной среды Visual Studio Community 2013 которую можно найти на странице https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx.
После установки среды и всех ее компонентов, запустим Visual Studio и создадим проект графического приложения. Для этого в меню выберем пункт File (Файл) и в подменю выберем New — > Project (Создать — > Проект). После этого перед нами откроется диалоговое окно создания нового проекта:
В левой колонке выберем Windows Desktop , а в центральной части среди типов проектов — тип Windows Forms Application и дадим ему какое-нибудь имя в поле внизу. Например, назовем его HelloApp. После этого нажимаем OK.
После этого Visual Studio откроет наш проект с созданными по умолчанию файлами:
Большую часть пространства Visual Studio занимает графический дизайнер, который содержит форму будущего приложения. Пока она пуста и имеет только заголовок Form1. Справа находится окно файлов решения/проекта — Solution Explorer (Обозреватель решений). Там и находятся все связанные с нашим приложением файлы, в том числе файлы формы Form1.cs.
Внизу справа находится окно свойств — Properties. Так как у меня в данный момент выбрана форма как элемент управления, то в этом поле отображаются свойства, связанные с формой.
Теперь найдем в этом окне свойство формы Text и изменим его значение на любое другое:
Таким образом мы поменяли заголовок формы. Теперь перенесем на поле какой-нибудь элемент управления, например, кнопку. Для этого найдем в левой части Visual Studio вкладку Toolbox (Панель инструментов) . Нажмем на эту вкладку, и у нас откроется панель с элементами, откуда мы можем с помощью мыши перенести на форму любой элемент:
Найдем среди элементов кнопку и, захватив ее указателем мыши, перенесем на форму:
Это визуальная часть. Теперь приступим к самому программированию. Добавим простейший код на языке C#, который бы выводил сообщение по нажатию кнопки. Для этого мы должны перейти в файл кода, который связан с этой формой. Если у нас не открыт файл кода, мы можем нажать на форму правой кнопкой мыши и в появившемся меню выбрать View Code (Посмотреть файл кода):
Однако воспользуемся другим способом, чтобы не писать много лишнего кода. Наведем указатель мыши на кнопку и щелкнем по ней двойным щелчком. Мы автоматически попадаем в файл кода Form1.cs, который выглядит так:
Добавим вывод сообщения по нажатию кнопки, изменив код следующим образом:
Запуск приложения
Чтобы запустить приложение в режиме отладки, нажмем на клавишу F5 или на зеленую стрелочку на панели Visual Studio. После этого запустится наша форма с одинокой кнопкой. И если мы нажмем на кнопку на форме, то нам будет отображено сообщение с приветствием.
После запуска приложения студия компилирует его в файл с расширением exe. Найти данный файл можно, зайдя в папку проекта и далее в каталог bin/Debug или bin/Release
Рассмотрев вкратце создание проекта графического приложения, мы можем перейти к обзору основных компонентов и начнем мы с форм.
Руководство по классическим приложениям (Windows Forms .NET) Desktop Guide (Windows Forms .NET)
Добро пожаловать в руководство по классическим приложениям для Windows Forms, платформы пользовательского интерфейса для создания разнообразных клиентских приложений рабочего стола в Windows. Welcome to the Desktop Guide for Windows Forms, a UI framework that creates rich desktop client apps for Windows. Платформа разработки Windows Forms поддерживает широкий набор функций для разработки приложений, включая элементы управления, графику, привязку данных и ввод пользователя. The Windows Forms development platform supports a broad set of app development features, including controls, graphics, data binding, and user input. Характерной чертой Windows Forms является использование визуального конструктора с функцией перетаскивания в Visual Studio для упрощения создания приложений Windows Forms. Windows Forms features a drag-and-drop visual designer in Visual Studio to easily create Windows Forms apps.
Документация для Руководства по рабочему столу по .NET 5 (и .NET Core) находится в разработке. The Desktop Guide documentation for .NET 5 (and .NET Core) is under construction.
Существует две реализации Windows Forms. There are two implementations of Windows Forms:
Реализация с открытым исходным кодом, размещенная на GitHub. The open-source implementation hosted on GitHub.
Эта версия работает в .NET 5 и .NET Core 3.1. This version runs on .NET 5 and .NET Core 3.1. Для использования визуального конструктора Windows Forms требуется версия Visual Studio 2019 не ниже предварительной версии 16.8. The Windows Forms Visual Designer requires, at a minimum, Visual Studio 2019 version 16.8 Preview.
Реализация .NET Framework 4, поддерживаемая в Visual Studio 2019 и Visual Studio 2017. The .NET Framework 4 implementation that’s supported by Visual Studio 2019 and Visual Studio 2017.
.NET Framework 4 — это версия .NET только для Windows, которая считается компонентом операционной системы Windows. .NET Framework 4 is a Windows-only version of .NET and is considered a Windows Operating System component. Эта версия Windows Forms распространяется с .NET Framework. This version of Windows Forms is distributed with .NET Framework.
Данное руководство по классическим приложениям создано для Windows Forms в .NET 5. This Desktop Guide is written for Windows Forms on .NET 5. Дополнительные сведения о версии Windows Forms для .NET Framework см. в разделе Windows Forms для .NET Framework. For more information about the .NET Framework version of Windows Forms, see Windows Forms for .NET Framework.
Введение Introduction
Windows Forms — это платформа пользовательского интерфейса для создания классических приложений Windows. Windows Forms is a UI framework for building Windows desktop apps. Она обеспечивает один из самых эффективных способов создания классических приложений с помощью визуального конструктора в Visual Studio. It provides one of the most productive ways to create desktop apps based on the visual designer provided in Visual Studio. Такие функции, как размещение визуальных элементов управления путем перетаскивания, упрощают создание классических приложений. Functionality such as drag-and-drop placement of visual controls makes it easy to build desktop apps.
В Windows Forms можно разрабатывать графически сложные приложения, которые просто развертывать, обновлять, и с которыми удобно работать как в автономном режиме, так и в сети. With Windows Forms, you develop graphically rich apps that are easy to deploy, update, and work while offline or while connected to the internet. Приложения Windows Forms могут получать доступ к локальному оборудованию и файловой системе компьютера, на котором работает приложение. Windows Forms apps can access the local hardware and file system of the computer where the app is running.
Зачем нужна миграция с .NET Framework Why migrate from .NET Framework
В Windows Forms для .NET 5.0 предусмотрены новые функции и усовершенствования по сравнению с .NET Framework. Windows Forms for .NET 5.0 provides new features and enhancements over .NET Framework. Дополнительные сведения см. в разделе Новые возможности в Windows Forms для .NET 5. For more information, see What’s new in Windows Forms for .NET 5. О том, как выполняется перенос приложения, см. в разделе Порядок переноса классического приложения Windows Forms в .NET 5. To learn how to migrate an app, see How to migrate a Windows Forms desktop app to .NET 5.
Создание многофункциональных интерактивных пользовательских интерфейсов Build rich, interactive user interfaces
Windows Forms — это технология пользовательского интерфейса для .NET, представляющая собой набор управляемых библиотек, которые упрощают выполнение стандартных задач, таких как чтение из файловой системы и запись в нее. Windows Forms is a UI technology for .NET, a set of managed libraries that simplify common app tasks such as reading and writing to the file system. С помощью среды разработки, такой как Visual Studio, можно создавать интеллектуальные клиентские приложения Windows Forms, которые отображают информацию, запрашивают ввод пользователя и взаимодействуют с удаленными компьютерами по сети. When you use a development environment like Visual Studio, you can create Windows Forms smart-client apps that display information, request input from users, and communicate with remote computers over a network.
В Windows Forms форма — это визуальная поверхность, на которой выводится информация для пользователя. In Windows Forms, a form is a visual surface on which you display information to the user. Обычно приложение Windows Forms строится путем добавления элементов управления в формы и создания кода для реагирования на действия пользователя, такие как щелчки мыши или нажатия клавиш. You ordinarily build Windows Forms apps by adding controls to forms and developing responses to user actions, such as mouse clicks or key presses. Элемент управления — это отдельный элемент пользовательского интерфейса, предназначенный для отображения или ввода данных. A control is a discrete UI element that displays data or accepts data input.
При выполнении пользователем какого-либо действия с формой или одним из ее элементов управления создается событие. When a user does something to your form or one of its controls, the action generates an event. Приложение реагирует на эти события, как задано в коде, и обрабатывает события при их возникновении. Your app reacts to these events with code, and processes the events when they occur.
В Windows Forms предусмотрено множество элементов управления, которые можно добавлять в формы. Например, элементы управления могут отображать текстовые поля, кнопки, раскрывающиеся списки, переключатели и даже веб-страницы. Windows Forms contains a variety of controls that you can add to forms: controls that display text boxes, buttons, drop-down boxes, radio buttons, and even webpages. Если предусмотренные элементы управления не подходят для ваших целей, в Windows Forms можно создавать собственные пользовательские элементы управления с помощью класса UserControl. If an existing control doesn’t meet your needs, Windows Forms also supports creating your own custom controls using the UserControl class.
В Windows Forms имеются многофункциональные элементы управления пользовательского интерфейса, позволяющие эмулировать функции таких сложных приложений, как Microsoft Office. Windows Forms has rich UI controls that emulate features in high-end apps like Microsoft Office. С помощью элементов управления ToolStrip и MenuStrip вы можете создавать панели инструментов и меню, которые содержат текст и изображения, отображают подменю и размещают другие элементы управления, такие как текстовые поля и поля со списками. When you use the ToolStrip and MenuStrip controls, you can create toolbars and menus that contain text and images, display submenus, and host other controls such as text boxes and combo boxes.
Используя функцию перетаскивания конструктора Windows Forms в Visual Studio, можно легко создавать приложения Windows Forms. With the drag-and-drop Windows Forms Designer in Visual Studio, you can easily create Windows Forms apps. Просто выделите элемент управления с помощью курсора и поместите его на нужное место в форме. Just select the controls with your cursor and place them where you want on the form. Для преодоления трудностей, связанных с выравниванием элементов управления, конструктор предоставляет такие средства, как линии сетки и линии привязки. The designer provides tools such as gridlines and snap lines to take the hassle out of aligning controls. С помощью элементов управления FlowLayoutPanel, TableLayoutPanel и SplitContainer можно гораздо быстрее создавать сложные макеты форм. You can use the FlowLayoutPanel, TableLayoutPanel, and SplitContainer controls to create advanced form layouts in less time.
Наконец, если нужно создать свои собственные элементы пользовательского интерфейса, пространство имен System.Drawing содержит широкий набор классов, необходимых для отрисовки линий, кругов и других фигур непосредственно на форме. Finally, if you must create your own custom UI elements, the System.Drawing namespace contains a large selection of classes to render lines, circles, and other shapes directly on a form.
Создание форм и элементов управления Create forms and controls
Пошаговые инструкции по использованию этих возможностей можно найти в приведенных ниже разделах справки. For step-by-step information about how to use these features, see the following Help topics.
- Добавление формы в проект How to add a form to a project
- Добавление элементов управления в форму How to add Controls to to a form
Control | [How to: Create a Basic ToolStrip with Standard Items Using the Designer](./controls/create-a-basic-wf-toolstrip-with-standard-items-using-the-designer.md) | | Creating graphics with | [Getting Started with Graphics Programming](./advanced/getting-started-with-graphics-programming.md) | | Creating custom controls | [How to: Inherit from the UserControl Class](./controls/how-to-inherit-from-the-usercontrol-class.md) | —>
Отображение и обработка данных Display and manipulate data
Во многих приложениях требуется отображать данные из базы данных, файла XML или JSON, веб-службы или другого источника данных. Many apps must display data from a database, XML or JSON file, web service, or other data source. Windows Forms предоставляет гибкий элемент управления с именем DataGridView для отображения таких табличных данных в традиционном формате строк и столбцов так, что каждый фрагмент данных занимает свою собственную ячейку. Windows Forms provides a flexible control that is named the DataGridView control for displaying such tabular data in a traditional row and column format, so that every piece of data occupies its own cell. С помощью DataGridView можно, помимо прочего, настроить внешний вид отдельных ячеек, зафиксировать строки и столбцы на своем месте, а также обеспечить отображение сложных элементов управления внутри ячеек. When you use DataGridView, you can customize the appearance of individual cells, lock arbitrary rows and columns in place, and display complex controls inside cells, among other features.
В Windows Forms можно с легкостью подключаться к источникам данных по сети. Connecting to data sources over a network is a simple task with Windows Forms. Компонент BindingSource представляет подключение к источнику данных и содержит методы для привязки данных к элементам управления, перехода к предыдущей или следующей записи, редактирования записей и сохранения изменений в исходном источнике. The BindingSource component represents a connection to a data source, and exposes methods for binding data to controls, navigating to the previous and next records, editing records, and saving changes back to the original source. Элемент управления BindingNavigator предоставляет простой интерфейс на основе компонента BindingSource для перехода между записями. The BindingNavigator control provides a simple interface over the BindingSource component for users to navigate between records.
Вы можете легко создавать элементы управления с привязкой к данным с помощью окна «Источники данных» в Visual Studio. You can create data-bound controls easily by using the Data Sources window in Visual Studio. В этом окне отображаются существующие в вашем проекте источники данных, такие как базы данных, веб-службы и объекты. The window displays data sources such as databases, web services, and objects in your project. Создавать элементы управления с привязкой к данным можно путем перетаскивания объектов из этого окна в формы проекта. You can create data-bound controls by dragging items from this window onto forms in your project. Также можно связывать существующие элементы управления с данными, перетаскивая объекты из окна «Источники данных» в существующие элементы управления. You can also data-bind existing controls to data by dragging objects from the Data Sources window onto existing controls.
Другой тип привязки к данным в формах Windows Forms — это параметры. Another type of data binding you can manage in Windows Forms is settings. В большинстве приложений требуется сохранять некоторые сведения о состоянии приложения во время выполнения, например, последний известный размер форм, а также данные пользовательских предпочтений, например, место сохранения файлов по умолчанию. Most apps must retain some information about their run-time state, such as the last-known size of forms, and retain user preference data, such as default locations for saved files. Параметры приложения отвечает этим требованиям, предоставляя простой способ хранения обоих типов сведений на клиентском компьютере. The Application Settings feature addresses these requirements by providing an easy way to store both types of settings on the client computer. После того как вы определите эти параметры с помощью Visual Studio или редактора кода, они сохраняются в XML-файле и автоматически считываются обратно в память во время выполнения. After you define these settings by using either Visual Studio or a code editor, the settings are persisted as XML and automatically read back into memory at run time.
component | [How to: Bind Windows Forms Controls with the BindingSource Component Using the Designer](./controls/bind-wf-controls-with-the-bindingsource.md) | | Working with ADO.NET data sources | [How to: Sort and Filter ADO.NET Data with the Windows Forms BindingSource Component](./controls/sort-and-filter-ado-net-data-with-wf-bindingsource-component.md) | | Using the Data Sources window | [Bind Windows Forms controls to data in Visual Studio](/visualstudio/data-tools/bind-windows-forms-controls-to-data-in-visual-studio) | | Using app settings | [How to: Create Application Settings](./advanced/how-to-create-application-settings.md) | —>
Развертывание приложений на клиентских компьютерах Deploy apps to client computers
После создания приложения необходимо отправить его пользователям, чтобы они могли установить и запустить его на своих клиентских компьютерах. After you have written your app, you must send the app to your users so that they can install and run it on their own client computers. С помощью технологии ClickOnce можно развертывать приложения из Visual Studio всего в несколько щелчков, а затем предоставлять пользователям URL-адрес приложения в Интернете. When you use the ClickOnce technology, you can deploy your apps from within Visual Studio by using just a few clicks, and provide your users with a URL pointing to your app on the web. ClickOnce управляет всеми элементами и зависимостями в приложении и обеспечивает его правильную установку на клиентском компьютере. ClickOnce manages all the elements and dependencies in your app, and ensures that the app is correctly installed on the client computer.
Приложения ClickOnce можно настроить для работы только при подключении к сети или для работы как в сетевом, так и в автономном режиме. ClickOnce apps can be configured to run only when the user is connected to the network, or to run both online and offline. Если вы указываете, что приложение должно поддерживать работу в автономном режиме, то технология ClickOnce добавляет ссылку на приложение в меню Пуск пользователя. When you specify that an app should support offline operation, ClickOnce adds a link to your app in the user’s Start menu. Затем пользователь может открывать приложение без использования URL-адреса. The user can then open the app without using the URL.
При обновлении приложения вы публикуете на веб-сервере новый манифест развертывания и новую копию приложения. When you update your app, you publish a new deployment manifest and a new copy of your app to your web server. ClickOnce обнаруживает, что доступно обновление, и обновляет установку пользователя. ClickOnce will detect that there is an update available and upgrade the user’s installation. Таким образом, для обновления старых приложений не требуется писать специальный код. No custom programming is required to update old apps.