Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

pragma once Hard / Занятие 8

.doc
Скачиваний:
14
Добавлен:
13.03.2015
Размер:
101.89 Кб
Скачать

Создание приложений Windows Forms

Приложение Windows Forms – это приложение Microsoft Windows на платформе .NET Framework. Приложения используют классы .NET Framework и иные функциональные возможности .NET с новым синтаксисом Visual C++.

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

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

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

Событие воспринимается Windows и преобразуется в сообщение — запись, содержащую необходимую информацию о событии.

Сообщения поступают в общую очередь, откуда распределяются по очередям приложений.

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

Таким образом, Windows-приложение состоит из:

  • главной программы, обеспечивающей инициализацию и завершение приложения;

  • цикла обработки сообщений;

  • набора обработчиков событий.

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

Создание обработчика событий

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

Обработчик событий — это метод, связанный с событием. При возникновении события выполняется код этого метода. В каждом обработчике имеются два параметра, позволяющие правильно обработать событие. В следующем примере показан обработчик события Click для элемента управления Button.

private:

void button1_Click(System::Object ^ sender,

System::EventArgs ^ e) { }

Первый параметр, sender, предоставляет ссылку на объект, вызвавший событие.

Второй параметр, e, передает объект, связанный с обрабатываемым событием. Например, при возникновении события MouseDown мы можем узнать координаты мыши (e->X, e->Y) или, какая кнопка мыши была нажата (e->Button).

Обработчик события можно создать двумя способами.

Первый способ:

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

Второй способ:

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

  • В окне Свойства нажмите кнопку События (молния).

  • В списке доступных событий найдите нужное событие.

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

  • Добавьте в обработчик события необходимый код.

Пример 8.1. Использование элементов Label, TextBox, GroupBox, RadioButton, Button.

Создайте новое приложение Windows Forms:

  • В меню Файл последовательно выберите команды Создать и Проект....

  • В узле Visual C++ области Типы проектов выберите CLR, а затем в области Шаблоны выберите Приложение Windows Forms.

  • Введите имя проекта. Можно принять место размещения по умолчанию, ввести необходимое место размещения или перейти к папке, в которой требуется сохранить проект.

  • Откроется конструктор Windows Forms, отображающий форму Form1 созданного проекта.

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

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

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

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

Добавьте в форму следующие элементы:

  • 2 элемента Label (для вывода надписей «аргумент» и «результат»);

  • 2 элемента TextBox (для ввода значения и вывода результата);

  • 1 элемент GroupBox (находится в Контейнерах, для объединения операций в одну группу);

  • в рамку добавить 2 элемента RadioButton (для выбора операций);

  • 2 элемента Button (для выполнения вычислений и завершения работы).

Измените значения свойства Text у всех элементов и формы на те, которые видны на рисунке.

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

Добавьте обработчики событий для кнопок.

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {

//Application::Exit();

if (MessageBox::Show("Закончить?",

"Пример приложения", MessageBoxButtons::YesNo,

MessageBoxIcon::Question) ==

System::Windows::Forms::DialogResult::Yes)

Application::Exit();

}

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {

double x, y;

x=System::Convert::ToDouble( textBox1->Text);

if (radioButton1->Checked) y=x/2;

else if (radioButton2->Checked)

{if (x>=0)

y=System::Math::Sqrt(x);

else {y=0; MessageBox::Show("Нет корня");}

}

else {y=0; MessageBox::Show("Выберите операцию");}

textBox2->Text=y.ToString();

}

Выполните приложение как обычно.

Пример 8.2. Использование списков, флажков и элемента для выбора даты.

Создайте приведенную форму:

Выноска 2 10Выноска 2 11Выноска 2 9

Добавьте обработчики событий:

//выполняется при загрузке формы

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {

//создаем массив для инициализации списка

array<String^>^ Цвета={"Белый", "Красный", "Желтый"};

//заполняем список (элемент comboBox1)

comboBox1->Items->AddRange(Цвета);

//выбираем нулевой элемент списка ("Белый")

comboBox1->SelectedIndex=0;

//выводим текущую дату

label4->Text=dateTimePicker1->Text;

}

//выполняется при выборе элемента из списка

private: System::Void comboBox1_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) {

switch (comboBox1->SelectedIndex) {

case 0: //выбрали "Белый"

label4->BackColor=Color::White;

break;

case 1: //выбрали "Красный"

label4->BackColor=Color::Red;

break;

case 2: //выбрали "Желтый"

label4->BackColor=Color::Yellow;

break;

}

}

//изменили состояние флажка "Полужирный"

private: System::Void checkBox1_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {

label4->Font = gcnew System::Drawing::Font( label4->Font,

//^ - побитовое ИЛИ. Разряд для полужирного меняется на противоположный

label4->Font->Style ^ FontStyle::Bold );

}

//изменили состояние флажка "Курсив"

private: System::Void checkBox2_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {

label4->Font = gcnew System::Drawing::Font( label4->Font,

//^ - побитовое ИЛИ. Разряд для курсива меняется на противоположный

label4->Font->Style ^ FontStyle::Italic );

}

//Выбрали новую дату

private: System::Void dateTimePicker1_ValueChanged(System::Object^ sender, System::EventArgs^ e) {

label4->Text=dateTimePicker1->Text;

}

Задания:

  1. В форме примера 8.1 для выбора операции используйте список вместо элементов RadioButton. Добавьте еще несколько операций. Для разных операций при выводе на экран используйте разные цвета символов (свойство ForeColor).

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

  1. Разработайте форму для решения уравнения ax2 + bx + c =0. Значения a, b, c вводятся. Предусмотрите возможность ввода пользователем любых значений параметров. Например, при a=0, b=0, c=0 x–любое число.

6

Соседние файлы в папке pragma once Hard