- Введение в Windows Forms
- Создание графического приложения
- Запуск приложения
- Введение в Windows Forms — пишем первую программу
- Как создать Windows Forms приложение из командной строки How to: Create a Windows Forms application from the command line
- Процедура Procedure
- Создание формы To create the form
- Компиляция и запуск приложения To compile and run the application
- Добавление элемента управления и обработка события Adding a control and handling an event
- Объявление элемента управления типа «Кнопка» и обработка событий щелчка мышью для нее To declare a button control and handle its click event
- Пример Example
Введение в 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.
Как создать Windows Forms приложение из командной строки How to: Create a Windows Forms application from the command line
В процедурах ниже описаны основные шаги, которые необходимо выполнить для создания и запуска приложения Windows Forms из командной строки. The following procedures describe the basic steps that you must complete to create and run a Windows Forms application from the command line. Visual Studio предлагает расширенную поддержку этих процедур. There is extensive support for these procedures in Visual Studio. См. также раздел Пошаговое руководство. размещение элемента управления Windows Forms в WPF. Also see Walkthrough: Hosting a Windows Forms Control in WPF.
Процедура Procedure
Создание формы To create the form
В пустом файле кода введите следующую Imports using инструкцию или: In an empty code file, type the following Imports or using statements:
Объявите класс с именем Form1 , наследуемый от класса Form: Declare a class named Form1 that inherits from the Form class:
Создайте конструктор без параметров для Form1 . Create a parameterless constructor for Form1 .
В следующий процедуре будет добавлен дополнительный код конструктора. You will add more code to the constructor in a subsequent procedure.
Добавьте в класс метод Main . Add a Main method to the class.
Примените STAThreadAttribute к Main методу C#, чтобы указать Windows Forms приложение является однопотоковым апартаментом. Apply the STAThreadAttribute to the C# Main method to specify your Windows Forms application is a single-threaded apartment. (Атрибут не является обязательным в Visual Basic, так как приложения Windows Forms, разработанные с помощью Visual Basic, по умолчанию используют модель апартамента с одним потоком.) (The attribute is not necessary in Visual Basic, since Windows forms applications developed with Visual Basic use a single-threaded apartment model by default.)
Вызовите EnableVisualStyles , чтобы применить стили операционной системы к приложению. Call EnableVisualStyles to apply operating system styles to your application.
Создайте экземпляр формы и запустите его. Create an instance of the form and run it.
Компиляция и запуск приложения To compile and run the application
В командной строке .NET Framework перейдите к папке, в которой содержится класс Form1 . At the .NET Framework command prompt, navigate to the directory you created the Form1 class.
Скомпилируйте форму. Compile the form.
Если используется C#, введите: csc form1.cs If you are using C#, type: csc form1.cs
При использовании Visual Basic введите: vbc form1.vb If you are using Visual Basic, type: vbc form1.vb
В командной строке введите следующий текст: Form1.exe . At the command prompt, type: Form1.exe
Добавление элемента управления и обработка события Adding a control and handling an event
В предыдущей процедуре продемонстрировано, как создать простейшую форму Windows Forms, скомпилировать и запустить ее. The previous procedure steps demonstrated how to just create a basic Windows Form that compiles and runs. В следующей процедуре будет показано, как создать и добавить в форму элемент управления и как обрабатывать событие для него. The next procedure will show you how to create and add a control to the form, and handle an event for the control. Дополнительные сведения об элементах управления, которые можно добавить в Windows Forms, см. в разделе элементы управления Windows Forms. For more information about the controls you can add to Windows Forms, see Windows Forms Controls.
Помимо понимания способов создания приложений Windows Forms, следует обладать общими знаниями о программировании на основе событий и способах обработки данных, введенных пользователем. In addition to understanding how to create Windows Forms applications, you should understand event-based programming and how to handle user input. Дополнительные сведения см. в статьях Создание обработчиков событий в Windows Formsи обработка входных данных пользователя . For more information, see Creating Event Handlers in Windows Forms, and Handling User Input
Объявление элемента управления типа «Кнопка» и обработка событий щелчка мышью для нее To declare a button control and handle its click event
Объявите элемент управления типа «Кнопка» с именем button1 . Declare a button control named button1 .
В конструкторе создайте кнопку и задайте ее свойства Size, Location и Text. In the constructor, create the button and set its Size, Location and Text properties.
Добавьте кнопку в форму. Add the button to the form.
В следующем примере кода показано, как объявить элемент управления Button: The following code example demonstrates how to declare the button control:
Создайте метод для обработки события Click для кнопки. Create a method to handle the Click event for the button.
В обработчике событий щелчка мышью выведите элемент управления MessageBox с сообщением «Здравствуй, мир». In the click event handler, display a MessageBox with the message, «Hello World».
В следующем примере кода показано, как обрабатывается событие Click элемента управления Button: The following code example demonstrates how to handle the button control’s click event:
Свяжите событие Click с созданным методом. Associate the Click event with the method you created.
В примере кода ниже показано, как связать событие с методом. The following code example demonstrates how to associate the event with the method.
Скомпилируйте и запустите приложение, как описано в предыдущей процедуре. Compile and run the application as described in the previous procedure.
Пример Example
В следующем примере кода приведен полный пример из предыдущих процедур. The following code example is the complete example from the previous procedures: