Какой интерфейс пользователя реализует платформа windows forms

от admin

Лекции / ВВЕДЕНИЕ В РАЗРАБОТКУ ГРАФИЧЕСКИХ ПОЛЬЗОВАТЕЛЬСКИХ ИНТЕРФЕЙСОВ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИИ WINDOWS FORMS

Forms из библиотек .NET Framework, т.е. Windows Forms – это набор средств для создания Windows-приложений, выполняющихся в среде CLR.

Средства Windows Forms обеспечивают быструю разработку пользовательского интерфейса, поскольку он создается из стандартных элементов, а соответствующий программный код генерируется автоматически. Затем требуется лишь доработать сгенерированный код, чтобы добиться необходимой функциональности.

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

Чтобы создать Windows-приложение на основе Windows Forms, следует выбрать команду главного меню «Файл» (File) → «Создать» (New) →

«Проект» (Project), затем выбрать тип проекта «Рабочий стол» (Windows Desktop), а в качестве шаблона проекта указать Windows Forms Application

После этого следует ввести имя проекта, например, PR1, и указать папку для хранения проекта.

После этого Visual Studio откроет наш проект с созданными по умолчанию файлами:

Большую часть пространства Visual Studio занимает графический

дизайнер, который содержит форму будущего приложения. Пока она пуста и

имеет только заголовок Form1. Справа находится окно файлов решения/проекта — Solution Explorer (Обозреватель решений). Там и находятся все связанные с нашим приложением файлы, в том числе файлы формы

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

Размещения элементов управления на форме

Для размещения различных элементов управления на форме используется Панель инструментов (Toolbox). Панель элементов содержит элементы управления, сгруппированные по типу. Каждую группу элементов можно свернуть, если она в настоящий момент не нужна. (Рисунок 3)

Чтобы добавить элементы управления на форму, необходимо щелкнуть на добавляемый элемент в панели инструментов, а затем щелкнуть в нужном месте формы. После этого элемент появится на форме (Рисунок 4).

Рисунок 4 – Форма с добавленными элементами управления (TextBox и Button)

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

Размещение строки ввода

Если необходимо ввести из формы в программу или вывести в форму информацию, которая вмещается в одну строку, используют окно однострочного редактора текста, представляемого элементом управления

Создадим поле для ввода имени пользователя. Выберем на панели инструментов пиктограмму с названием «TextBox», щелкните мышью в том месте формы, где хотите ее разметить. После размещения элемента можно в

тексте программы использовать переменную textBox1, которая соответствует добавленному элементу управления. В этой переменной, в свойстве Text будет содержаться строка символов (типа string) и отображаться в соответствующем окне TextBox. С помощью окна свойств можно установить шрифт и размер символов, отражаемых в строке TextBox (свойство Font).

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

После этого в нужном месте формы щелкните мышью, появится надпись label1. Щелкнув на ней мышью, можно отрегулировать размер и, изменив свойство Text в окне свойств, введите строку, например, «Введите свое имя:»,

а также выберите размер символов (свойство Font). Добавленный элемент представлен в форме на рисунке 5.

Рисунок 5 – Форма с добавленным элементом Label

В тексте программы можно обращаться к новой переменной типа Label.

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

Написание программы обработки события

С каждым элементом управления на форме и с самой формой могут происходить события во время работы программы. Например, с кнопкой может произойти событие – нажатие кнопки, а с окном, которое проектируется с помощью формы, может произойти ряд событий: создание окна, изменение размера окна, щелчок мыши на окне и т.п. Эти события могут обрабатываться программно. Для обработки таких событий используются специальные методы – обработчики событий. Создать такие методы можно двумя способами.

Первый способ – создать обработчик для события по умолчанию.

Например, при нажатии кнопки на форме таким образом создается обработчик события нажатия.

Написание программы обработки события нажатия кнопки

Поместите на форму кнопку, которая описывается элементом управления Button. С помощью окна свойств измените заголовок (Text) на слово «Привет» или другое по вашему желанию. Отрегулируйте положение и размер кнопки.

После этого два раза щелкните мышью на кнопке, появится текст программы:

private void button1_Click( object sender, EventArgs e)

Этот метод и будет являться обработчиком события нажатия кнопки. Вы можете добавлять свой код между скобками <…>. Например, наберите:

private void button1_Click( object sender, EventArgs e)

MessageBox.Show( «Привет » + textBox1.Text + «!» );

При нажатии на кнопку выведется окно с сообщением «Привет»,

которое соединено с текстом, записанным пользователем в textBox1

Рисунок 6 – Окно с сообщением, появившееся при нажатии кнопки button1

Написание программы обработки события загрузки формы

Второй способ создания обработчика события заключается в выборе соответствующего события для выделенного элемента на форме. При этом используется окно свойств и его закладка . Рассмотрим этот способ.

Выделите форму щелчком по ней, чтобы вокруг нее появилась рамка из точек.

В окне свойств найдите событие Load. Щелкните по данной строчке дважды мышкой. Появится метод:

private void Form1_Load( object sender, EventArgs e)

Между скобками <…>вставим текст программы:

private void Form1_Load( object sender, EventArgs e)

Свойство BackColor позволяет изменить цвет фона. Результат выполнения данного метода представлен на рисунке 7.

Рисунок 7 – Форма с измененным фоном

Каждый элемент управления имеет свой набор обработчиков событий,

однако некоторые из них присущи большинству элементов управления.

Наиболее часто применяемые события описаны ниже:

1) Load – событие, возникающее при загрузке формы. В обработчике данного события следует задавать действия, которые должны происходить в момент создания формы, например, установка начальных значений.

2) KeyPress – событие, возникающее при нажатии кнопки на клавиатуре.

Параметр e.KeyChar имеет тип char и содержит код нажатой клавиши

(например, клавиша Enter клавиатуры имеет код #13, клавиша Esc — #27 и т.д.).

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

3) KeyDown – событие, возникающее при нажатии кнопки на клавиатуре. Обработчик этого события получает информацию о нажатой клавише и состоянии клавиш Shift, Alt и Ctrl, а также о нажатой кнопке мыши.

Информация о клавише передается параметром e.KeyCode, который представляет собой перечисление Keys с кодами всех клавиш, а информацию

о клавишах-модификаторах Shift и др. можно узнать из параметра e.Modifiers.

4) KeyUp – является парным событием для KeyDown и возникает при отпускании ранее нажатой клавиши.

5) Click – возникает при нажатии кнопкой мыши в области элемента управления.

6) DoubleClick – возникает при двойном нажатии кнопки мыши в области элемента управления.

Важное примечание — если какой-то обработчик был добавлен по ошибке или больше не нужен, то для его удаления нельзя просто удалить программный код обработчика. Сначала нужно удалить строку с именем обработчика в окне свойств в закладке с событиями. В противном случае программа может перестать компилироваться и даже отображать форму в дизайнере VS.

Динамическое изменение свойств

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

(например, обработчика события нажатия на кнопку). Для этого используют оператор присвоения вида:

<имя элемента> определяется на этапе проектирования формы, при размещении элемента управления на форме. Например, при размещении на форме ряда элементов TextBox, эти элемента получают имена textBox1, textBox2, textBox3 и т.д., которые могут быть заменены в окне свойств в свойстве (Name) для текущего элемента. Список свойств для конкретного элемента можно посмотреть в окне свойств.

Если требуется изменить свойства формы, то никакое имя элемента перед точкой вставлять не нужно, как и саму точку. Например, чтобы задать цвет формы, нужно просто написать:

Ввод и вывод данных в программу

Рассмотрим один из способов ввода данных через элементы,

размещенные на форме. Для ввода данных чаще всего используют элемент

управления TextBox, через обращение к его свойству Text. Свойство Text

хранит в себе строку введенных символов. Поэтому данные можно считать следующим образом:

private void button1_Click( object sender, EventArgs e)

string s = textBox1.Text;

Однако со строкой символов трудно производить арифметические операции, поэтому лучше всего при вводе числовых данных перевести строку в целое или вещественное число. Для этого у типов int и double существуют методы Parse для преобразования строк в числа. С этими числами можно производить различные арифметические действия. Таким образом,

предыдущий пример можно переделать следующим образом:

Перед выводом числовые данные следует преобразовать назад в строку.

Для этого у каждой переменной существует метод ToString(), который возвращает в результате строку с символьным представлением значения.

Вывод данных можно осуществлять в элементы TextBox или Label, используя свойство Text. Например,

private void button1_Click( object sender, EventArgs e)

string s = textBox1.Text; int a = int.Parse(s);

При создании программ в Visual Studio для организации разветвлений часто используются элементы управления в виде кнопок-переключателей.

Кнопки-переключатели представлены в панели инструментов как RadioButton.

Состояние такой кнопки (включено-выключено) визуально отражается на форме, а в программе можно узнать его помощью свойства Checked: если

Интерфейс Windows forms

Windows Forms — интерфейс программирования приложений (API), отвечающий за графический интерфейс пользователя и являющийся частью Microsoft .NET Framework. Данный интерфейс упрощает доступ к элементам интерфейса Microsoft Windows за счет создания обёртки для существующего Win32 API в управляемом коде. Причём управляемый код — классы, реализующие API для Windows Forms, не зависят от языка разработки. То есть программист одинаково может использовать Windows Forms как при написании ПО на C++, С#, так и на VB.Net, J# и др.

Приложение Windows Forms представляет собой событийно-ориентированное приложение, поддерживаемое Microsoft .NET Framework. В отличие от пакетных программ, большая часть времени тратится на ожидание от пользователя каких-либо действий, как, например, ввод текста в текстовое поле или клика мышкой по кнопке.

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

При выполнении пользователем какого-либо действия с формой или одним из ее элементов управления создается событие. Приложение реагирует на эти события с помощью кода и обрабатывает события при их возникновении. [9]

Windows Forms включает широкий набор элементов управления, которые можно добавлять на формы: текстовые поля, кнопки, раскрывающиеся списки, переключатели и даже веб-страницы. Список всех элементов управления, которые можно использовать в форме, представлены в разделе Элементы управления для использования в формах Windows Forms. Если существующий элемент управления не удовлетворяет потребностям, в Windows Forms можно создать пользовательские элементы управления с помощью класса UserControl.

Windows Forms рассматривается как замена более старой и сложной библиотеке MFC, изначально написанной на языке C++.

Введение в Windows Forms

Для создания графических интерфейсов с помощью платформы .NET применяются разные технологии — Window Forms, WPF, UWP. Однако наиболее простой и удобной платформой до сих пор остается Window Forms или сокращенно WinForms. Данное руководство ставит своей целью дать понимание принципов создания графических интерфейсов с помощью технологии WinForms и работы основных элементов управления.

Читать:
Как узнать версию сервера майнкрафт

Создадим первое приложение на C# и Windows Forms. Что нам для этого потребуется? Прежде всего необходим текстовый редактор для написания кода программы. Можно взять любой понравившийся текстовый редактор, например, Visual Studio Code

Также для компиляции и запуска программы нам потребуется .NET SDK. Для его установки перейдем на официальный сайт по ссылке .NET SDK

Загрузка .NET SDK для Windows Forms

После установки .NET SDK для первого проекта определим какую-нибудь папку. Например, в моем случае это будет папка C:\dotnet\winforms\helloapp . Откроем терминал/командную строку и перейдем к созданной папке проекта с помощью команды cd

В данном случае мы для создания и запуска проекта мы будем использовать встроенную инфраструктуру .NET CLI, которая устанавливается вместе с .NET SDK.

Для создания проекта в .NET CLI применяется команда dotnet new , после которой указывается тип проWindows Formsекта. Для создания проекта Windows Forms применяется шаблон — winforms . Поэтому введем в терминале команду

Создание первого проекта Windows Forms и C# с помощью .NET CLI

После выполнения этой команды у нас будет создан следующий проект:

Первый проект Windows Forms на C# в Visual Studio Code

Структура проекта Windows Forms

Рассмотрим базовую структуру простейшего стандартного проекта Windows Forms:

helloapp.csproj : стандартный файл проекта C#, который соответствует назанию проекта (по умолчанию названию каталога) и описывает все его настройки.

helloapp.csproj.user : дополнительный файл проекта C#, который хранит специфичные для текущего пользователя настройки.

Form1.cs : содержит класс формы, которая по умолчанию запускается при старте приложения

Form1.Designer.cs : он содержит определение компонентов формы, добавленных на форму в графическом дизайнере (графический дизайнер Windows Forms на данный момент официально доступен только в Visual Studio)

Program.cs : определяет класс Program, который запускается при старте приложения и запускает форму Form1

Например, посмотрим на содержимое файла helloapp.csproj

Для компиляции приложения Windows Forms указаны следующие настройки:

OutputType : определяет выходной тип проекта. Должен иметь значение WinExe — то есть выполняемое приложение с расширением exe под Windows

TargetFramework : определяет применяемую для компиляции версию фреймворка .NET. Поскольку при создании проекта была выбрана версия .NET 7, а сам проект зависит от компонентов Windows, то здесь должно быть значение net7.0-windows

Nullable : подключает в проект функционалность ссылочных nullable-типов

UseWindowsForms : указывает, будет ли проект использовать Windows Forms (для этого устанавливается значение true )

ImplicitUsings : подключает в проект функциональность неявно подключаемых глобальных пространств имен

Запуск проекта

Проект по умолчанию не представляет какой-то грандиозной функциональности, тем не менее этот проект мы уже можем запустить. Итак, запустим проект. Для этого выполним команду

запуск проекта Windows Forms и C# с помощью .NET CLI

При запуске запускается графическая форма, код которой определяет класс Form1:

Первое приложение на Windows Forms на С# с .NET CLI

Запуск приложения

Файл Program.cs определяет точку входа в приложение:

Метод Main снабжен атрибутом [STAThread] . Этот атрибут, грубого говоря, необходим для корректной работы компонентов Windows. В самом методе сначала вызывается метод

который устанавливает некоторую базовую конфигурацию приложения

Затем вызывается метод

в который передается объект отображаемой по умолчанию на экране формы.

То есть, когда мы запустим приложение, сработает метод Main , в котором будет вызван метод Application.Run(new Form1()) , благодаря чему мы увидим форму Form1 на экране.

Определение формы

Теперь посмотрим на определение формы и немного изменим его. Для этого откроем файл Form1.cs в текстовом редакторе. По умолчанию он выглядит следующим образом:

Класс формы — Form1 представляет графическую форму — фактически то окно, которое мы увидим на экране при запуске проекта.

Этот класс определяется как частичный (с модификатором partial ) и наследуется от встроенного класса Form , который содержит базовую функциональность форм.

В самом классе Form1 определен по умолчанию только конструктор, где вызывается метод InitializeComponent() , который выполняет инициализацию компонентов формы из файла дизайнера Form1.Designer.cs . По сути именно код этого файла передается выше через вызов InitializeComponent()

Теперь изменим его код следующим образом:

В данном случае на форму добавляется кнопка, и у нее настраиваются различные свойства, как текст, положение на форме, размер, а также обработчик нажатия. Заново запустим проект, и нам отобразится та же форма, которая теперь будет содержать кнопку. И по нажатию на кнопку появится маленькое окно с сообщением.

C# Windows Forms tutorial

C# Windows Forms tutorial teaches the basics of GUI programming with C# & Windows Forms. In our tutorial, we will build our applications manually; we will not use Form designers.

Advertisements Windows Forms

Windows Forms, sometimes abbreviated as Winforms, is a graphical user interface application programming interface (API) included as a part of Microsoft’s .NET Framework.

Windows Forms allows to create graphically rich applications that are easy to deploy and update. The applications are more secure than traditional Windows-based applications.

In December 2018, Microsoft announced releasing Windows Forms as open source project on GitHub. It is released under the MIT License. With this release, Windows Forms has become available on the .NET Core framework. Windows Forms is available on Windows only.

Building Windows Forms applications

We will be using .NET Core to create Windows Forms applications.

A new template for the Windows Forms application is created with the dotnet new winforms command.

The application is run with the dotnet run command.

Advertisements Windows Forms simple example

In the first example, we display a simple window on the screen.

We create the template of the Windows Forms application. The command also generates Form1.Designer.cs and Form1.cs files. We will not use them and they can be safely deleted.

The example displays a main window on the screen. The window is centered.

We use the Windows Forms and Drawing namespaces.

In Windows Forms, any window or a dialog is a Form. This control is a basic container whose purpose is to display other child controls. The MyForm inherits from a form. This way it becomes a form itself.

As a good programming practice, the form initialization is delegated to the InitComponents method.

Text and Size are properties of a form. Changing these properties, we modify our form control. The first line displays text «First application» in the titlebar of the form control. The second line sets the size of the client area of the form. The CenterToScreen method centers the form on the screen.

The Main method is an entry point to the application. Windows Forms applications must declare the [STAThread] attribute; otherwise, the controls might not work correctly. This tells to use single-threaded apartment model instead of multi-threaded.

With the SetHighDpiMode method, we ensure that our application looks good on any display resolution.

The EnableVisualStyles method enables visual styles. The application will use the built-in Windows theming to style controls instead of the classic Windows look and feel.

The Run method starts the application. It begins running a standard application message loop on the current thread, and makes the specified form visible.

Windows Forms tooltips

A tooltip is a small rectangular pop-up window that displays a brief description of a control’s purpose when the user rests the pointer on the control.

The code example creates a tooltip for two controls: one Button control and the Form control.

We place two buttons on the FlowLayoutPanel . It dynamically lays out its contents horizontally or vertically. (The default dimension is vertical.)

We create a new tooltip. With the SetToolTip , we assign the tooltip to the FlowLayoutPanel control.

The FlowLayoutPanel fills the entire area of the form control.

A new Button control is created. We set its text with the Text property and size it automatically to fit the text size.

A tooltip is added to the first Button control.

The buttons are added to the flow panel and the flow panel is added to the form.

Advertisements Windows Forms Quit button

Button control represents a Windows button control. It can be clicked by using the mouse, Enter key, or Spacebar if the button has focus.

The example creates a Quit button control; the application terminates when we click on the button.

The button has some margin around its borders. We add some space to the left and above the button control.

We plug an event handler to the Click event. When we click on the button, the application is closed with the Close method. Since we do not work with the sender object and event arguments, we use discards.

Windows Forms Label

Label is a simple control for displaying text or images. It does not receive focus.

The example displays lyrics using the Label control.

We use this font to display the text.

The label control is created. It is located at the x=10, y=10 coordinate on the form.

The main window is automatically sized to fit the lyrics.

Advertisements Windows Forms CheckBox

CheckBox is a control that has two states: on and off. It is a box with a label or an image. If the CheckBox is checked, it is represented by a tick in a box.

The code example shows or hides the title of the window depending on its state.

When the application starts, we show the title. And we set the CheckBox control to checked state.

When we click on the CheckBox control, the CheckedChanged event is triggered.

Depending on the value of the Checked property, we toggle the title of the window.

Windows Forms simple menu

A menubar is a collection of menus. A menu groups commands of an application.

In our example, we have a menubar and one menu. Inside a menu there is one menu item. If we select the menu item, application is closed.

The application can be closed also by using the Ctrl + X shorcut or by pressing Alt , F , E keys.

MenuStrip creates a menu system for our form. We add ToolStripMenuItem objects to the MenuStrip that represent the individual menu commands in the menu structure. Each ToolStripMenuItem can be a command for your application or a parent menu for other submenu items.

Here we create a menu with the ToolStripMenuItem .

This line creates the exit menu item.

We provide a shortcut for the exit menu item.

The exit menu item is added to the drop down items of the menu object.

Here we add the menu object into the menu strip.

The MenuStrip is plugged into the form. In other words, the menubar is added to the main window of the application.

Advertisements Windows Forms painting rectangles

Painting is done with the painting API provided by the Windows Forms. The painting is done within a method, that we plug into the Paint event.

We draw nine rectangles with nine different colours.

Paint events are delivered to the OnPaint method.

This is the signature of the OnPaint method.

In order to paint on the form, we must get the Graphics object. Painting on a form is actually calling various methods of the Graphics object.

The FillRectagle method fills a specified rectangle with a brush. A brush can be a colour or a pattern. There are some predefined colours available. We can get them from the Brushes enumeration. The last four values are the x, y values of the topleft point and the width and height of the rectangle.

In this article, we have created simple GUI applications in C# and Windows Forms.

Похожие статьи