Введение в 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 — пишем первую программу
В данной статье будет рассказано о том как написать простой обработчик событий на C++ для приложения Windows Forms, работающего под управления .NET Framework. Мы создадим простейшую Windows программу, которая вычисляет факториал целого числа. Для написания данной программы Вам понадобится Visual Studio 2008 Express Edition или Professional.
Для начала создадим проект.
Откроем Visual Studio, далее жмем Файл→Создать→Проект, далее выбираем пункт CLR и отмечаем Приложение Windows Forms, даем имя проекта, к примеру factr и жмем Ok.
После того как мы создали проект, должна появиться пустая форма, которая должна выглядеть примерно так:
Справа должна появиться панель элементов, если ее нет, то можно включить ее в меню Вид→Панель Элементов или нажатием горячих клавиш — Ctrl + Alt + X.
На ней расположены различные элементы для вставки в форму, нам понадобятся только элементы Button (Кнопка), Label (Надпись) и TextBox (Текстовое поле). Перетащите на форму три элемента Label, Два элемента TextBox, и одну кнопку (Button), расставьте элементы примерно так:
Теперь нам нужно будет изменить текст надписей для элементов Label и Button и Задать подходящие имена классов для элементов TextBox. Для этого Выделите элемент label1, перейдите в Панель свойств, (обычно она находится под Панелью элементов, если панель выключена, включите ее в меню Вид -> Диспетчер свойств.) и задайте для данного элемента значение атрибута Text как показано на рисунке.
Задайте атрибут Text для всех элементов Label и Кнопки Button аналогичным образом. Наша форма должна принять примерно следующий вид:
Я сделал кнопку развернуть неактивной, так как изменение размеров данной формы испортит ее внешний вид, Вы также можете это сделать, щелкнув левой кнопкой мыши на пустом месте формы и в Панели свойств задать для атрибута MaximizeBox параметр False.
Теперь задайте для текстовых полей (TextBox) Атрибуты Name в Панели Свойств – для первого поля это будет num1, а для второго, соответственно num2. Тем самым мы изменили имена классов для полей TextBox, чуть позднее Вы поймете зачем.
Итак, каркас формы готов, если откомпилировать и запустить программу, то мы увидим, какой будет наша форма на финише, правда сейчас она совершенно бесполезна. Перейдем к написанию обработчика событий для кнопки Button, т.е. что будет происходить при нажатии на эту кнопку, также мы напишем саму функцию вычисления факториала, которую мы будем использовать в обработчике.
Первым делом нужно добавить заголовочный файл fact.h в проект, для этого щелкаем правой кнопкой мыши в Обозревателе решений на папке Заголовочные файлы, далее меню Добавить -> Создать Элемент, вписываем название файла – fact.h и нажимаем Добавить. В данном файле будет содержаться прототип функции для вычисления факториала. Добавляем туда следующий исходный код.
Далее подключаем этот файл к проекту с помощью директивы #include – Открываем файл factr.cpp и добавляем после строчки #include «stdafx.h» следующий код.
Теперь наш заголовочный файл подключен к проекту, далее аналогичным образом создаем файл исходного кода fact.cpp в проект.
В него добавляем саму функцию вычисления факториала целого числа.
Теперь наш проект содержит функцию вычисления факториала, откомпилируйте его, если ошибок нет, то можно приступить к написанию обработчика событий для кнопки Button.
Открываем файл Form.h, в нем мы видим визуальное представление нашей формы. Щелкаем двойным щелчком на кнопке Button и переходим к исходному коду.
После фигурной скобки ставим абзац и приступаем к кодированию. Любой набор символов, которые мы вводим с клавиатуры в текстовое поле программы является строкой, поэтому нам нужно вытащить значение из текстового поля и привести его к целочисленному типу. Это довольно сложная процедура, но, к счастью в языке C++ уже есть множество функций, выполняющих конвертирование типов данных. Сначала нам необходимо описать и инициализировать переменную, в которой будет храниться значение числа, для которого должен быть вычислен факториал. Добавим в том место, где Вы поставили абзац следующий код:
Эта строка инициализирует переменную, которая хранит в себе число для вычисления его факториала. Далее нам нужно будет произвести вызов нашей функции fact с переменной number в качестве единственного аргумента и занести результат работы функции в новую переменную factor.
И затем преобразовать полученное значение обратно в строку и присвоить его второму текстовому полю.
Таким образом, наш простой обработчик событий будет выглядеть вот так:
Теперь можно скомпилировать и запустить готовую программу и проверить ее. Помните, что тип double в С++ может хранить число не превышающее !170.
Результат работы программы можно проверить в инженерном калькуляторе Windows.
BestProg
Пример программирования события клика на кнопке в C# . Разработка программы определения площади поверхности шара
На примере решения задачи определения площади поверхности шара, подробно описывается как программировать событие в среде Microsoft Visual Studio — C# .
Содержание
Поиск на других ресурсах:
Условие задачи
Составить программу, которая по введенному радиусу R находит площадь поверхности шара. Программу реализовать как Windows Forms Application .
Площадь поверхности шара вычисляется по формуле:
где R – радиус шара, π – константа равная 3.1415 .
В программе используются следующие элементы управления:
- Label – метка для вывода сообщений;
- Button – кнопка для выполнения расчета;
- TextBox – поле ввода, предназначенное для ввода значения R .
Выполнение
1. Запустить MS Visual Studio. Создать проект по шаблону Windows Forms Application
Подробный пример создания нового приложения типа Windows Forms Application описан здесь . Сохранить проект под любым именем.
2. Размещение элементов управления на форме.
Из вкладки « Common Controls » выносим на форму четыре элемента управления (рис. 1):
- два элемента управления типа Label (метка);
- элемент управления типа Button (кнопка);
- элемент управления типа TextBox (строка ввода).
Рис. 1. Элементы управления Label , Button , TextBox
Автоматически создаются четыре объекта с именами label1 , label2 , button1 и textBox1 . По этим именам можно будет иметь доступ к свойствам этих объектов.
Форма приложения будет иметь вид, как показано на рис. 2.
Рис. 2. Форма приложения после размещения label1 , label2 , button1 и textBox1
3. Настройка элементов управления типа Label .
Выделяем элемент управления (объект) label1 . В палитре Toolbox изменяем свойство Text , набираем « R = «.
Точно так же изменяется свойство Text для элемента управления label2 (рис. 3). Вводим текст « Площадь поверхности шара = «.
Рис. 3. Изменение свойства Text в label1
4. Элемент управления Button .
Аналогично к label1 выделяем элемент управления (объект) button1 . В свойстве Text вводим строку « Вычислить «.
5. Корректировка вида формы.
Изменяем название формы. Для этого выделяем форму. В свойстве Text формы вводим текст « Площадь поверхности шара «.
После корректировки форма будет иметь вид, как показано на рисунке 4.
Рис. 4. Вид формы после корректировки
6. Программирование события клика на кнопке « Вычислить «.
6.1. Вызов программного кода.
В программе нужно обработать событие, которое генерируется когда пользователь делает клик «мышкой» на кнопке « Вычислить «.
После нажатия на кнопке « Вычислить » формируется фрагмент кода, который будет обрабатываться нашим приложением. Во время обработки сначала определяется значение введенного радиуса R , затем делается расчет по формуле и вывод результата.
Чтобы вызвать фрагмент кода обработки события на кнопке button1 нужно выполнить такие действия:
- выделить кнопку button1 (рис. 5 — 1);
- перейти к вкладке Events (события) в окне свойств (рис. 5 — 2);
- сделать двойной щелчок «мышкой» напротив события « Click » (рис. 5 — 3).
Рис. 5. Последовательность вызова фрагмента кода обработки события Click
В итоге, откроется вкладка программного кода, который размещен в файле « Form1.cs » (рис. 6).
Рис. 6. Метод обработки события клика на кнопке button1
Листинг программного кода следующий:
6.2. Ввод программного кода обработки события.
В методе button1_Click вписываем код обработки события. Листинг метода следующий:
В коде описываются две переменные R и S типа double . Также описывается константа Pi .
Для преобразования из текстового типа string в тип double используется метод Parse . Таким образом заполняется значение переменной R.
Подобным образом можно преобразовывать данные и других типов. Например, для типа int можно написать:
Результат вычисления площади поверхности шара выводится в label2.Text . Преобразование в тип string осуществляется с помощью метода ToString() .
6.3. Корректировка программного кода.
В коде, описанном в пункте 6.2 нету защиты от некорректного ввода значения R . Поэтому метод button1_Click нужно переписать следующим образом:
позволяет осуществить программный перехват критической ситуации, которая может возникнуть в результате ввода некорректного значения в поле textBox1 (например «абракадабра»).
В этом случае в свойстве ex.Message буде выведено сообщение:
7. Запуск программы на выполнение.
После этого можно запустить нашу программу на выполнение и протестировать ее работу при любых значениях R .