Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Визуальные компоненты Label, TextBox и Button




            Начнем изучение визуальных компонент с простого примера вычисления суммы бесконечного ряда вида

       

с заданной погрешностью E>0. Для решения поставленной задачи на форме нужно разместить два компонента редактирования текстов TextBox. Щелкнем левой клавишей мыши на компоненте TextBox в палитре Toolbox, а затем переместим курсор на форму и снова щелкнем левой клавишей мыши.. В результате на форме появится компонент TextBox.

        Компонент TextBox.Основное свойство этого компонента - Text. Оно представляет поле, в котором можно вводить и редактировать различные строки базового типа Среды разработки CLR - String^. String – это класс, предназначенный для работы со строками. String ^ - управляемый указатель, описывающий строку символов. Эта строка имеет ряд отличий от типа  в ANSY/ISO C char* . В частности строки класса String можно присваивать.

        Следует отметить, что любые числовые данные, введенные в поле Text, также являются строкой символов. Поэтому необходимо выполнить их преобразование в числовую форму. Наиболее простой способ – применение методов специального класса Convert. Например, для преобразования строкового представления числа к целому и вещественному типам:         String ^str;

                   Int number = Convert::ToInt32(str);

                   double num = Convert::Double(str);

       Размеры компонента TextBox можно менять, используя маркеры выделения (квадратики, на левой и правой границах компонент). Для этого нужно установить курсор мыши на одном из маркеров, нажать левую клавишу мыши и, удерживая ее нажатой, изменить положение границы компонента.

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

        Разместим на форме три компонента TextBox, расположив их в левой части формы в столбик. Один будет использован для ввода переменной X, другой - для ввода погрешности E, третий – для вывода результата работы приложения.

        Компонент Label.Кроме компонентов TextBox окно формы должно содержать пояснительный текст рядом с полем редактирования. Такой текст, расположенный на форме, может быть установлен с помощью компонента Label (метка).

        Основное свойство метки – Text, котрое тоже имеет тип String ^. На любой компонент Формы и в поле самой Формы можно выводить только строки типа String. Поле Text метки может быть изменен текст в окне Properties или непосредственно в проекте в функции InitializeComponent() в строках, относящихся к соответствующей метке в строке. Например:

this->label1->Text = L”Точность”;

Введем в форму три метки, расположив их над полями компонентов TextBox и поменяем в поле Text: button1 – на «Введите погрешность Е», button2 – на «Введите Х» , button3 – на «Сумма». 

       Компонент Button.Кнопка Button – простейший и наиболее часто используемый элементов управления. Основное свойство кнопки, сообщающее пользователю ее назначение, это – Text. В названии кнопки можно предусмотреть использование клавиш ускоренного доступа, выделяя для этого один из символов вставкой перед ним амперсанта &. В этом случае пользователь может вместо щелчка на кнопке нажать клавишу Alt cсовместно с клавишей выделенного символа.

       Добавим на форму три кнопки, которые расположим одна под другой справа от TextBox. Свойству Text первой из них зададим значение «Ввод погрешности», для второй – «Ввод Х», а для третьей – «Сумма». Вид формы приложения для вычисления площади треугольника представлен на рис.6.

Рис.6 Форма приложения для вычисления площади треугольника

        После создания интерфейса необходимо написать программу, которая выполнит все запланированные действия – позволит осуществить ввод исходных данных и вычислит результат. Каждое из указанных действий осуществляется щелчком правой клавиши мыши на соответствующей кнопке и называется событием. В Windows Form у стандартных событий есть стандартные имена. Они находятся на вкладке событий (Events) окна Properties. Например, событие, соответствующее одному щелчку левой клавишей мыши, имеет имя Click.

        Реакцией на событие должно быть некоторое действие. Так, реакцией на событие Click, произошедшее при нажатии кнопки «Сумма», должно быть вычисление суммы ряда по введенным ранее исходным данным и отображение его в окне «Сумма». Реализация этих реакций осуществляется с помощью специальных функций, называемых обработчиками событий.

        Для написания кода обработчика необходимо на вкладке Events окна Properties выбрать событие Click и дважды щелкнуть в ячейке справа от него. В результате открывается окно редактора кода с макетом функции-обработчика события, который для кнопки «Ввод погрешности» имеет следующий вид:

private: System::Void button1_Click(System::Object^ 

sender, System::EventArgs^ e)

{}

        Имя функции образуется автоматически как комбинация двух частей, разделенных символом ‘_’. Первая часть – имя командной кнопки Button1, а вторая - имя события – Click. Аналогичным образом формируются макеты обработчиков событий для кнопок «Ввод Х» и «Сумма».

        В окне редактора кода между операторными скобками {} следует написать инструкции языка С++, реализующие обработку событий. Код функций – обработчиков для всех трех кнопок представлен ниже:

private: System::Void button1_Click(System::Object^

sender, System::EventArgs^ e)

            {

                           eps=Convert::ToDouble(textBox1->Text);

            }

private: System::Void button2_Click(System::Object^

 sender, System::EventArgs^ e)

            {

                           x = Convert::ToDouble(textBox2->Text);

            }

private: System::Void button3_Click(System::Object^

sender, System::EventArgs^ e)

            {

                           s=1;

                           float a=1;

                           int n=1;

                           while(fabs(a)>=eps)

                           {

                                           a=a*x/n;

                                           s=s+a;

                                           n++;

                           }

                           textBox3->Text=Convert::ToString(s);

             }

При написании программы следует обратить внимание на использование функции ToDouble() класса Convert для перевода данных из типа String^ в тип float перед вычислением суммы и функции ToString() для обратной операции float -> String ^ для отображения результата в окне редактора.

        Для выполнения созданного приложения нужно выбрать сначала команду меню Build -> Build Solution и выполнить компиляцию и сборку программы. В случае успешного завершения данных операций выполнить команду Debug->Start Debugging. Результат работы приложения показан на Рис.7.

Рис.7 Результат выполнения приложения для задачи нахождения суммы ряда

Рассмотрим еще несколько часто используемых объектов формы.

 










Последнее изменение этой страницы: 2018-06-01; просмотров: 376.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...