Оконные приложения

Все программы условно можно подразделить на две категории: консольные и оконные.

Консольные программы — это наследие старых операционных систем типа MS DOS, работавших в текстовом режиме. Полной аналогии здесь нет, но создатели систем разработки пытаются сделать всё, чтобы было максимальное сходство. Для консольной программы операционная система или система разработки предоставляет специальное окно (обычно — черного цвета), в котором виден ход выполнения программы.

Оконное приложение всегда имеет своё собственное окно (обычно его называют главным окном приложения). Кроме главного окна в приложении могут использоваться множество других окон.

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

Порядок создания оконного приложения

Создание оконного приложения начинается с создания проекта соответствующего типа. Порядок работы следующий:

  1. Запускаем SharpDevelop, в Стартовой странице (Start Page) выбираем New solution (Новое решение). Если Стартовая страница закрыта, то выбираем пункт меню File/New/Solution...

  2. В открывшемся окне диалога New Project (Новый проект) выбираем тип шаблона Windows Application (Оконное приложение), задаём имя проекта (Name), например: Primer_Windows1, каталог (Location), в котором будет хранится программа и все необходимые для её работы файлы — пусть это C:\stud\2202.

  3. Нажимаем кнопку Create (Создать). Всё. Минимальное оконное приложение создано.

Что из себя представляет минимальное оконное приложение? В отличие от минимального консольного приложения оконное состоит уже из двух классов:

Текст класса Program стандартен и вряд ли требует каких-либо изменений. Метод Main() этого класса создаёт объект главного окна программы типа MainForm и запускает бесконечный цикл опроса сообщений, поступающих к этому окну.

Информация о классе главного окна программы MainForm, как сказано выше, хранится в двух файлах:

Когда в окне редактора открыт файл MainForm.cs, то в нижней части этого окна есть две вкладки:


Рис.1. Открыта вкладка Source


Рис.2. Открыта вкладка Design

Когда открыта вкладка Design, то становится доступно окно Tools (на рис. 2 оно расположено слева) — это окно с панелями инструментов, т.е. готовых элементов управления, которые можно размещать на форме.

Также станет доступно окно Properties (Свойства). В этом окне в выпадающем списке вверху можно выбирать тот объект на форме, который нужен, и изменять его свойства на этапе проектирования внешнего вида программы.

Порядок разработки оконного приложения

Разработка оконного приложения состоит из двух основных этапов:

Рассмотрим оба этапа на простом примере.

Пример 1. Даны основание a и высота h треугольника. Вычислить его площадь s.

Задача сводится к вводу исходных данных (a и h), вычислению площади и выводу полученного результата.

Вначале на форме разместим два объекта типа TextBox, предназначенные для ввода данных (TextBox – простой текстовый редактор, используется для ввода или вывода данных). Объекты по-умолчанию получат имена textBox1 и textBox2. Первый будем использовать для ввода a, второй — для ввода h.

Слева от текстовых редакторов расположим два объекта типа Label (Label — надпись, используется для вывода каких либо поясняющих текстов). Их имена будут label1 и label2. В свойствах Text этих объектов (находим их в окне Properties) напишем строки «a=» и «h=», чтобы было понятно, что будет вводится в текстовых редакторах.

Ниже расположим ещё один объект типа Label (label3), напишем в его свойстве Text строку «s=?». Этот объект будем использовать для вывода результатов вычисления, т.е. площади треугольника.

Ещё ниже разместим две кнопки — объекты типа Button. Они получат имена button1 и button2. В свойстве Text для этих кнопок напишем строки «Вычислить» и «Выход». Основное назначение объектов этого типа — выполнение каких-либо действий по щелчку. Т.е. пользователь программы щёлкает мышью по кнопке, и программа в ответ выполняет какое-то действие. Но чтобы это произошло, необходимо написать обработчики событий. Так в нашем случае первая кнопка предназначена для вычисления площади, а вторая — для завершения работы программы.

В свойстве Text самой формы (MainForm) напишем что-нибудь соответствующее решаемой задачи, например: «Площадь».

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


Рис. 3. Форма


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

Приступаем ко второй части разработки программы — написанию обработчиков событий.

Обработчик событий — это метод особого вида со стандартным перечнем параметров. Используется для реакции программы на те или иные действия пользователя. Обработчик не вызывается непосредственно в тексте программы. Он вызывается средой выполнения. Каждый обработчик связан с каким-либо объектом.

Создать обработчики событий для наших кнопок очень просто. Если открыта вкладка Design, то выполните двойной щелчок мышью по каждой из кнопок. Сразу же после двойного щелчка мыши по первой кнопке («Вычислить») открывается вкладка Source и в ней можно увидеть добавленный Дизайнером код заготовки метода Button1Click(). Снова перейдите во вкладку Design и выполните двойной щелчок по второй кнопке («Выход»). Дизайнер добавит ещё один обработчик — метод Button2Click().

Внутри полученных таким способом заготовок методов (обработчиков событий) напишем необходимый код. Вот текст файла MainForm (для краткости убраны все комментарии, которые были добавлены системой разработки):

using System;

using System.Collections.Generic;

using System.Drawing;

using System.Windows.Forms;


namespace Primer_Windows1

{

   public partial class MainForm : Form

   {

      public MainForm()

      {

         InitializeComponent();

      }


      void Button1Click(object sender, EventArgs e)

      {

         double a, h, s;

         a = double.Parse(textBox1.Text);

         h = double.Parse(textBox2.Text);

         s = a * h / 2;

         label3.Text = "s=" + s.ToString();

      }


      void Button2Click(object sender, EventArgs e)

      {

         Close();

      }

   }

}


Ниже показано окно программы в процессе работы:




Назад
На верх
Вперёд
Hosted by uCoz