Пиши Дома Нужные Работы

Обратная связь

Основные элементы управления

Классы элементов происходят от класса System::Windows::Forms::Control.

Классы находятся в пространстве имен System::Windows::Forms. Некоторые классы для задания элементов управления:

Label – текстовая метка;

Button – кнопка;

TextBox – текстовое поле;

CheckBox – контрольный переключатель;

RadioButton – радиокнопка;

ListBox – список;

ComboBox – комбинированный список.

Рассмотрим некоторые классы элементов управления, которые необходимы для выполнения работы.

Класс Label (Метка)

Предоставляет текстовую метку для элемента управления.

Можно для объекта класса обрабатывать события, например, «щелчок» на элементе, но чаще этого не делают. Назначение элемента заголовок для другого элемента, например, текстового поля.

Основное свойство (поле): Text

Класс Button (Кнопка)

Основное свойство (поле): Text.

Основное событие: Click (нажатие на кнопку).

Класс TextBox (Текстовое поле)

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

Основное поле: Text.

Основное событие: TextChanged (Изменение текста).

Класс ListBox

Некоторые поля (свойства): Items, SelectedItems предоставляют доступ к коллекциям, используемым ListBox.

Основное событие: SelectedIndexChanged (изменение выбора элемента).

Примеры работы со списком

Добавить строку в список:

listBox1->Items->Add( “Hello World”);

Получить строку из выделенного элемента:

String ^ str=listBox1->SelectedItem->ToString();

Удалить выделенный элемент:

int i=listBox1->SelectedIndex;

listBox1->Items->RemoveAt(i);

Очистить все элементы списка:

listBox1->Items->Clear();



 

Задачи и порядок выполнения работы

Условие задачи:

Разработать приложение на основе формы – калькулятор для вычисления арифметических операций (+ - * /). Все проведенные операции добавляются в список, который может быть очищен при нажатии кнопки. Калькулятор может иметь примерный вид, представленный на рисунке 11 (в зависимости от варианта задания).

Рисунок 11 – Приложение типа калькулятор

Пример выполнения работы

Для решения задачи необходимо создать приложение по шаблону CLR, тип проекта «Пустой проект CLR» (в более ранних версиях существовал шаблон Windows Forms Application – Приложение на базе формы, можно было использовать его для создания приложение с формой), окно для создания проекта представлено на рисунке 12.

Рисунок 12 – Вид окна для создания проекта

После создания пустого проекта в него необходимо добавить класс, созданный на базе класса System::Windows::Forms::Form (в более ранних версиях при создании проекта Windows Forms Application это действие выполнять не надо).Для этого через вкладку классы с использованием правой клавиши мыши и появившегося контекстного меню, в котором выбираем элементы «Добавить – Класс», появится окно, представленное на рисунке 13, в котором устанавливаем показанные на рисунке параметры.

 

Рисунок 13 – Окно для добавления класса формы

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

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

#include "MyForm1.h"

 

using namespace MyForm;

 

[STAThreadAttribute]

int main(array<System::String ^> ^args)

{

// Enabling Windows XP visual effects before any controls are created

Application::EnableVisualStyles();

Application::SetCompatibleTextRenderingDefault(false);

 

// Create the main window and run it

Application::Run(gcnew MyForm1());

return 0;

}

Если запустить проект в таком виде, то вначале появится консольное окно, а затем форма, чтобы устранить этот недостаток необходимо выполнить следующее. В свойствах проекта во вкладке Компоновщик – Система для параметра «Подсистема» необходимо установить значение Windows, см. рисунок 14. В свойствах проекта во вкладке Компоновщик – Дополнительно для параметра «Точка входа» установить значение main, см. рисунок 15.

 

Рисунок 14 – Вкладка Компоновщик - Система

 

Рисунок 15 – Вкладка Компоновщик - Дополнительно

 

Исходный текст обработчиков событий от нажатия кнопок, добавленных в класс формы (class MyForm1 : public System::Windows::Forms::Form):

// Обработчики событий нажатия на кнопки + - * /

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

Double D1=Convert::ToDouble(textBox1->Text); // Преобразуем из строки в Double

Double D2=Convert::ToDouble(textBox2->Text); // Преобразуем из строки в Double

Double D3=D1+D2; // Получаем результат

textBox3->Text=D3+""; // Преобразуем результат в строку и помещаем в

// текстовое поле

String ^ str=D1+"+"+D2+"="+D3; // Строка для списка

listBox1->Items->Add(str); // Строку помещаем в список

}

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

Double D1=Convert::ToDouble(textBox1->Text); // Преобразуем из строки в Double

Double D2=Convert::ToDouble(textBox2->Text); // Преобразуем из строки в Double

Double D3=D1-D2; // Получаем результат

textBox3->Text=D3.ToString(); // Преобразуем результат в строку и помещаем

// в текстовое поле

String ^ str=D1+"-"+D2+"="+D3; // Строка для списка

listBox1->Items->Add(str); // Строку помещаем в список

}

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

Double D1=Convert::ToDouble(textBox1->Text); // Преобразуем из строки в Double

Double D2=Convert::ToDouble(textBox2->Text); // Преобразуем из строки в Double

Double D3=D1*D2; // Получаем результат

textBox3->Text=Convert::ToString(D3); // Преобразуем результат в строку и

// помещаем в текстовое поле

String ^ str=D1+"*"+D2+"="+D3; // Строка для списка

listBox1->Items->Add(str); // Строку помещаем в список

}

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

Double D1=Convert::ToDouble(textBox1->Text); // Преобразуем из строки в Double

Double D2=Convert::ToDouble(textBox2->Text); // Преобразуем из строки в Double

Double D3=D1/D2; // Получаем результат

textBox3->Text=D3+""; // Преобразуем результат в строку и помещаем

// в текстовое поле

String ^ str=D1+"/"+D2+"="+D3; // Строка для списка

listBox1->Items->Add(str); // Строку помещаем в список

}

// Обработчик события от кнопки "Очистить список"

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

listBox1->Items->Clear(); // Очистить все элементы списка

}






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.