Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FAQC++.doc
Скачиваний:
13
Добавлен:
10.02.2015
Размер:
1.55 Mб
Скачать

Как получить текст,введенныйв текстовомполе?

В зависимости от типа элемента управления свойства, с помощью которых можно получить информацию из элемента, будут различны. Самая простая ситуация с текстовым полем – свойство для получения того, что пользователь ввел в текстовое поле называется Text. Так что для получения (также как и для установки значения текста в поле) требуется обратиться по имени к текстовому полю и его свойству Text (например, textBox1->Text, если текстовое поле названо системой по умолчанию, или MyTextBox ->Text, если текстовое поле было названо MyTextBox).

Как понять, что была нажата кнопка и выполнить какие-то действия?

Нажатие кнопки является основным ее событием. Для его обработки требуется назначить функцию-обработчик события Click в окне свойств кнопки:

Рис 43. Окно свойств для кнопки. Создание обработчика нажатия кнопки.

В примере игры «Угадай число» две кнопки – «Загадать» и «Угадать». При нажатии на кнопку «Загадать» система должна сгенерировать число и запомнить его в переменных формы.

public ref class Form1 : public System::Windows::Forms::Form

{

// загаданное число

int x;

//количество попыток

int count;

. . .

}

Обработчик нажатия кнопки «Загадать» может быть таким:

// подключаем необходимые библиотеки для генерации случайных чисел

#include<cstdlib>

#include <ctime>

. . .

// Обработчик нажатия кнопки «Загадать»

private: System::Void Generate_Click(System::Object^ sender,

System::EventArgs^ e) {

srand(time(0));// без этого числа будут одинаковые

x = rand()%100; }

В обработчике кнопки «Угадать» требуется прочитать то, что пользователь ввел в текстовое поле и сравнить введенное число с загаданным, увеличить количество попыток угадывания и сообщить результат попытки (больше, меньше, угадано):

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

count++; // сделана еще одна попытка угадать число

label3->Text = "Количество попыток - " + count;

// считываем число из текстового поля и преобразуем его к типу Int32 // создаем интерфейс IFormatProvider для преобразования

IFormatProvider^ provider;

int y = Convert::ToInt32(textBox1->Text, provider);

// число угадано

if (y == x)

label2->Text = "Угадали";

// число меньше загаданного

if (y < x)

label2->Text = "Меньше";

// число больше загаданного

if (y > x)

label2->Text = "Больше";

}

Рис 44. Окно игры «Угадай число».

Программный код для реализации данного окна таков:

public ref class Form1 : public System::Windows::Forms::Form

{

// загаданное число

int x;

//количество попыток

int count;

private: System::Windows::Forms::Button^ Generate;

private: System::Windows::Forms::Label^ label1;

private: System::Windows::Forms::TextBox^ textBox1;

private: System::Windows::Forms::Button^ Try;

private: System::Windows::Forms::Label^ label2;

private: System::Windows::Forms::Label^ label3;

private: System::Windows::Forms::Timer^ MyTimer;

public: Form1(void) {

InitializeComponent();

// начальные значения счетчика попыток

count=0;

}

protected:

~Form1()

{

if (components)

delete components;

}

private: System::ComponentModel::IContainer^ components;

protected:

private:

#pragma region Windows Form Designer generated code

void InitializeComponen t(void)

{

// код функции, сгенерированный системой

. . .

}

#pragma endregion

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

count++;

label3->Text = "Количество попыток - " + count;

// считываем число из текстового поля и преобразуем его к типу Int32

IFormatProvider^ provider;

int y = Convert::ToInt32(textBox1->Text, provider);

// число угадано

if (y == x)

label2->Text = "Угадали";

// число меньше загаданного

if (y < x)

label2->Text = "Меньше";

// число больше загаданного

if (y > x)

label2->Text = "Больше";

}

private: System::Void Generate_Click(System::Object^ sender,

System::EventArgs^ e) {

count=0;

srand(time(0));// без этого числа будут одинаковые

x = rand()%100;

}

};

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]