- Создание многооконных приложений в Visual Studio .Net
- Учебник. Создание нового приложения WinForms (Windows Forms .NET) Tutorial: Create a new WinForms app (Windows Forms .NET)
- Предварительные требования Prerequisites
- Создание приложения WinForms Create a WinForms app
- Важные элементы среды Visual Studio Important parts of Visual Studio
- Добавление элементов управления на форму Add controls to the form
- Обработка событий Handle events
- Запустите приложение Run the app
Создание многооконных приложений в Visual Studio .Net
Все приложения Windows делятся на два вида – однооконные (SDI – Single Document Interface) и многооконные (MDI – Multi Document Interface). SDI-приложения имеют одну или несколько форм, которые выводятся на экран независимо друг от друга. Примерами SDI-приложений являются такие программы, как калькулятор и Paint. MDI-приложения имеют главную форму (называемую родительской, или Parent Form), внутри которой отображаются подчиненные формы (называемые дочерними, или Child Forms). Каждый документ открывается в своем дочернем окне. Примерами многооконных приложений являются приложения Word и Excel. Сама система Visual Studio .Net также является многооконным приложением. В MDI-приложениях при закрытии главной формы автоматически закрываются все ее дочерние формы. Диалоговые окна не влияют на работу ни SDI-приложений, ни MDI-приложений, они в любом случае отображаются поверх всех форм.
Создание SDI-приложения не требует дополнительных усилий. По-умолчанию любое приложение, создаваемое с помощью среды разработки Visual Studio .Net, является SDI-приложением. Для создания же MDI-приложения требуется установить определенные свойства некоторым формам и написать соответствующий код. При этом, если все дочерние формы однотипны, то в проект достаточно добавить только одну дочернюю форму, т.к. на экране в процессе выполнения программы отображается наследный экземпляр дочерней формы. Поэтому даже при наличии одной дочерней формы внутри главной формы можно отобразить сколько угодно ее экземпляров. Если же дочерние формы различны, то в проект можно добавить только по одной дочерней форме каждого вида.
Для создания MDI-приложения необходимо в той форме, которая является главной, установить значение свойства IsMDIContainer, равное True (по умолчанию устанавливается значение False). У дочерних форм никаких специальных свойств устанавливать не требуется.
Для загрузки экземпляра дочерней формы необходимо написать следующий код (Form2 – имя дочерней формы):
Visual Basic .Net:
Dim newmdichild As New Form2
Visual C# .Net:
Form newmdichild = new Form2();
После загрузки дочерней формы ее можно обрабатывать как обычную. В частности, она имеет собственное событие Load, где можно, например, изменять ее заголовок:
Visual Basic .Net:
Me.Text = «Вторая дочернаяя форма»
Visual C# .Net:
this.Text = «Моя вторая форма»;
и записать другие действия. Для скрытия дочерней формы с экрана используются методы Hide и Close, также, как и для обычной формы, например:
Visual Basic .Net:
Visual C# .Net:
Ключевое слово Me (this) здесь относится к дочерней форме, т.к. в данный момент эта форма является текущей. Дочерние формы можно закрывать и обычным образом (через кнопку закрытия окна Windows).
Если же нужно закрыть дочернюю форму из главной (например, из соответствующего пункта меню), то значение методов Hide и Close меняется. Например, для закрытия текущей дочерней формы метод Close применяется к объекту ActiveMDIChild:
Ключевое слово Me здесь относится к родительской форме, т.к. в данный момент она является текущей. Для закрытия всех дочерних форм внутри родительской можно использовать код:
Visual Basic .Net:
Dim f As New Form
For Each f In Me.MdiChildren
Visual C# .Net:
foreach (Form f in this.MdiChildren)
Ключевое слово Me (this)здесь также относится к родительской форме.
Дочерние окна внутри родительской формы можно упорядочивать по вертикали, по горизонтали, каскадом или по значкам. Такая возможность имеется во многих программах (Word, Excel и др.). Для реализации этой возможности в Visual Basic .Net используют метод LayoutMDI родительской формы, например:
Visual Basic .Net:
Visual C# .Net:
Ключевое слово Me (this) здесь также относится к родительской форме.
Учебник. Создание нового приложения WinForms (Windows Forms .NET) Tutorial: Create a new WinForms app (Windows Forms .NET)
Из этого краткого руководства вы узнаете, как создать новое приложение Windows Forms (WinForms) с помощью Visual Studio. In this short tutorial, you’ll learn how to create a new Windows Forms (WinForms) app with Visual Studio. После создания первоначального приложения вы научитесь добавлять элементы управления и обрабатывать события. Once the initial app has been generated, you’ll learn how to add controls and how to handle events. По завершении работы с этим руководством у вас будет простое приложение, добавляющее имена в список. By the end of this tutorial, you’ll have a simple app that adds names to a list box.
Документация для Руководства по рабочему столу по .NET 5 (и .NET Core) находится в разработке. The Desktop Guide documentation for .NET 5 (and .NET Core) is under construction.
В этом руководстве описано следующее: In this tutorial, you learn how to:
- Создание нового приложения WinForms Create a new WinForms app
- Добавление элементов управления на форму Add controls to a form
- Обработка событий элемента управления для предоставления функциональных возможностей приложения Handle control events to provide app functionality
- Запустите приложение Run the app
Предварительные требования Prerequisites
- Visual Studio 2019 версии 16.8 или более поздней Visual Studio 2019 version 16.8 or later versions
- Выберите рабочую нагрузку «Рабочий стол Visual Studio» Select the Visual Studio Desktop workload
- Выберите Отдельные компоненты .NET 5 Select the .NET 5 individual component
Создание приложения WinForms Create a WinForms app
Первым шагом в создании нового приложения является запуск Visual Studio и создание приложения на основе шаблона. The first step to creating a new app is opening Visual Studio and generating the app from a template.
Запустите Visual Studio. Open Visual Studio.
Выберите Создать новый проект. Select Create a new project.
В поле Поиск шаблонов введите winforms и нажмите клавишу ВВОД . In the Search for templates box, type winforms, and then press Enter .
В раскрывающемся списке язык кода выберите C# или Visual Basic. In the code language dropdown, choose C# or Visual Basic.
В списке шаблонов выберите Приложение Windows Forms (.NET) и затем щелкните Далее. In the templates list, select Windows Forms App (.NET) and then click Next.
Не выбирайте шаблон Приложение Windows Forms (.NET Framework) . Don’t select the Windows Forms App (.NET Framework) template.
В окне Настроить новый проект задайте в качестве имени проекта значение Names и щелкните Создать. In the Configure your new project window, set the Project name to Names and click Create.
Вы также можете сохранить проект в другую папку, изменив параметр Расположение. You can also save your project to a different folder by adjusting the Location setting.
После создания приложения Visual Studio должен открыть панель конструктора для формы по умолчанию Form1. Once the app is generated, Visual Studio should open the designer pane for the default form, Form1. Если конструктор форм не отображается, дважды щелкните форму в области Обозреватель решений, чтобы открыть окно конструктора. If the form designer isn’t visible, double-click on the form in the Solution Explorer pane to open the designer window.
Важные элементы среды Visual Studio Important parts of Visual Studio
Поддержка WinForms в Visual Studio состоит из четырех важных компонентов, с которыми вы будете взаимодействовать при создании приложения. Support for WinForms in Visual Studio has four important components that you’ll interact with as you create an app:
обозреватель решений Solution Explorer
Все файлы проекта, код, формы и ресурсы отображаются в этой области. All if your project files, code, forms, resources, will appear in this pane.
Properties (Свойства) Properties
На этой панели отображаются параметры свойств, которые можно настроить в зависимости от выбранного элемента. This pane shows property settings you can configure based on the item selected. Например, если выбрать элемент в Обозревателе решений, отобразятся параметры свойств, связанные с файлом. For example, if you select an item from Solution Explorer, you’ll see property settings related to the file. Если выбрать объект в конструкторе, отобразятся параметры элемента управления или формы. If you select an object in the Designer, you’ll see settings for the control or form.
Конструктор форм Form Designer
Это конструктор для формы. This is the designer for the form. Он является интерактивным, и на него можно перетаскивать объекты из панели элементов. It’s interactive and you can drag-and-drop objects from the Toolbox. Выбирая и перемещая элементы в конструкторе, можно визуально создавать пользовательский интерфейс для приложения. By selecting and moving items in the designer, you can visually compose the user interface (UI) for your app.
Панель элементов Toolbox
Панель элементов содержит все элементы управления, которые можно добавить на форму. The toolbox contains all of the controls you can add to a form. Чтобы добавить элемент управления на текущую форму, дважды щелкните элемент управления или перетащите его. To add a control to the current form, double-click a control or drag-and-drop the control.
Добавление элементов управления на форму Add controls to the form
Открыв конструктор форм Form1, используйте панель Область элементов, чтобы добавить на форму следующие элементы управления: With the Form1 form designer open, use the Toolbox pane to add the following controls to the form:
- Метка Label
- Кнопка Button
- Listbox Listbox
- Текстовое поле Textbox
Вы можете расположить и изменить размер элементов управления в соответствии со следующими настройками. You can position and size the controls according to the following settings. Либо визуально перенесите их, чтобы они соответствовали следующему снимку экрана, либо щелкните каждый элемент управления и настройте параметры в области Свойства. Either visually move them to match the screenshot that follows, or click on each control and configure the settings in the Properties pane. Можно также щелкнуть область заголовка формы, чтобы выбрать форму. You can also click on the form title area to select the form:
Объект Object | Параметр Setting | Значение Value |
---|---|---|
Form Form | Текст Text | Names |
Размер Size | 268, 180 | |
Label Label | Расположение Location | 12, 9 |
Текст Text | Names | |
Listbox Listbox | Имя Name | lstNames |
Расположение Location | 12, 27 | |
Размер Size | 120, 94 | |
текстовое поле; Textbox | Имя Name | txtName |
Расположение Location | 138, 26 | |
Размер Size | 100, 23 | |
Button Button | Имя Name | btnAdd |
Расположение Location | 138, 55 | |
Размер Size | 100, 23 | |
Текст Text | Add Name |
Вы должны получить в конструкторе форму, которая выглядит следующим образом. You should have a form in the designer that looks similar to the following:
Обработка событий Handle events
Теперь, когда в форме есть все элементы управления, необходимо обрабатывать события элементов управления, чтобы реагировать на вводимые пользователем данные. Now that the form has all of its controls laid out, you need to handle the events of the controls to respond to user input. Открыв конструктор форм, выполните следующие действия. With the form designer still open, perform the following steps:
Выберите в форме элемент управления «Кнопка». Select the button control on the form.
В области Свойства щелкните значок события , чтобы вывести список событий кнопки.
Найдите событие Click и дважды щелкните его, чтобы создать обработчик событий. Find the Click event and double-click it to generate an event handler.
Это действие добавляет следующий код в форму: This action adds the following code to the the form:
Код, помещаемый в этот обработчик, будет добавлять имя, заданное элементом управления TextBox txtName , в элемент управления ListBox lstNames . The code we’ll put in this handler will add the name specified by the txtName textbox control to the lstNames listbox control. Однако мы хотим, чтобы имя удовлетворяло двум условиям: указанное имя не должно быть пустым, и его еще не должно быть в списке. However, we want there to be two conditions to adding the name: the name provided must not be blank, and the name must not already exist.
В следующем примере кода показано добавление имени в элемент управления lstNames . The following code demonstrates adding a name to the lstNames control:
Запустите приложение Run the app
Теперь, когда у нас есть код события, можно запустить приложение, нажав клавишу F5 или выбрав пункт меню Отладка > Начать отладку. Now that the event has been coded, you can run the app by pressing the F5 key or by selecting Debug > Start Debugging from the menu. Отобразится форма, и вы можете ввести имя в текстовое поле, а затем добавить его, нажав кнопку. The form displays and you can enter a name in the textbox and then add it by clicking the button.