Практическое занятие № 2 

ТЕМА: Создание программ с вариантами использования

ЦЕЛЬ РАБОТЫ: получить практические навыки по использованию флажков, переключателей, счетчиков, списков в программах на C#

 

Ход работы

 

Создать форму вида:

 

 

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

 

Указания: для формы задайте свойства: FormBorderStyle=FixedSingle; MaximizeBox=false; Text= Программа по вариантами; Icon=произвольную иконку; StartPosition=CenterScreen.

 

На форме создать две закладки.

 

Указания: для создания закладок выберите компонент TabControl и нанесите его на форму. Задайте свойство Dock=Fill (растянуть компонент на всю форму). Для каждой закладки в свойстве Text введите названия "Основная" и "Параметры";

 

На первой закладке создать счетчик для ввода первого числа и список для выбора второго числа.

 

Указания: для создания счетчика нанесите на форму компонент NumericUpDown и задайте свойство ReadOnly=true (счетчик заблокирован для ввода с клавиатуры).

Ниже разместите список ListBox и в свойстве Items введите значение для списка.

При старте программы необходимо, что первый элемент в списке был выбран. Для этого в событии Load формы напишите код:

 

void Form1_Formload(object sender, EventArgs e)

{

    listBox1.SelectedIndex=0;

}

 

Под списком создать панель  с компонентами для редактирования списка. В поле можно ввести число и добавить его в список с помощью кнопки "+". С помощью кнопки "-" можно удалить из списка выбранный элемент.

 

Указания: для редактирования списка на форме разместите компонент GroupBox и очистите свойство Text. Для добавления нового значения в список на форме разместите текстовое поле. Под полем разместите кнопку со свойствами Text="+". Для кнопки в событии Click введите код:

 

void button1_Click(object sender, EventArgs e)

{

    //если поле не пустое,

    if (textBox1.Text!="")

    {

        //его содержимое добавляется в список

        listBox1.Items.Add(textBox1.Text);

        //ставим курсор в списке на последнее (добавленное) значение

        listBox1.SelectedIndex=listBox1.Items.Count-1;

                //очищаем поле после добавления

             textBox1.Text="";

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

             textBox1.Focus();

    }

    //иначе сообщение об ошибке и ставим курсор в поле

    else

    {

        MessageBox.Show("Нет данных для добавления",

                        "Ошибка",

                        MessageBoxButtons.OK,

                        MessageBoxIcon.Error);

        textBox1.Focus();

    }

}

 

Для удаления значения из списка на форме создайте кнопку со свойством Text="-". Щелкните на кнопке два раза и напишите код:

 

void button2_Click(object sender, Eventargs e)

{

    //если в списке есть выбранный элемент

    if (listBox1.SelectedIndex!=-1)

    {

        //то выдаем запрос на удаление

        if (MessageBox.Show("Удалить элемент?",

                            "Подтвердите",

                            MessageBoxButtons.YesNo,

                            MessageBoxIcon.Question)==DialogResult.Yes)

            //если пользователь ответил "ДА", то удаляем           

            listBox1.Items.RemoveAt(listBox1.SelectedIndex);

    }

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

    //выдаем сообщение об ошибке

    else

        MessageBox.Show("Не выбран элемент для удаления",

                        "Ошибка",

                        MessageBoxButtons.OK,

                        MessageBoxIcon.Error);

}

 

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

 

Указания: нанесите компонент GroupBox и в свойстве Text укажите значение "Вид расчетов".

На панель нанесите четыре компонента RadioButton и в свойстве Text введите надписи для переключателей. Первый переключатель должен быть выбран. Для этого у него свойстве Checked укажите значение True.

 

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

 

Указания: нанесите компонент GroupBox и в свойстве Text укажите значение "Вид вывода".

На панель нанесите два компонента CheckBox и в свойстве Text введите надписи для флажков. Первый флажок должен быть выбранным. Для этого у него свойстве Checked укажите значение True.

 

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

 

Указания: нанесите на форму два компонента Button и в свойстве Text введите названия для кнопок.

Для кнопки "Отмена" в событии Click введите код:

 

void button4_Click(object sender, EventArgs e)

{

   Close();

}

 

Для выполнения расчетов и вывода результата нужно создать новую форму.

 

Указания: перейдите в окно "Обозреватель решений". В окне в контекстном меню проекта выберите команду "Добавить – Создать элемент". В новом окне укажите элемент "Форма Windows Form".

В результате в дереве проекта появится файл новой формы с именем Form2.cs

Нанесите на форму компонент Label для отображения результата.

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

Для доступа к компоненту на второй форме его надо сделать "видимым". Для этого выделите компонент Label на форме Form2 и в свойстве Modifiers укажите значение Public (компонент становится глобальным в проекте и видимым на других формах).

Для кнопки "Расчет" в событии Click введите код:

 

void button3_Click(object sender, EventArgs e)

{

    //выдаем запрос на выполнение расчета

    if (MessageBox.Show("Рассчитать выражение?",

                        "Подтвердите",

                        MessageBoxButtons.YesNo,

                        MessageBoxIcon.Question)==DialogResult.No)

        //если ответ " НЕТ", то код, расположенный ниже не выполняется  

        return;

   

    //конвертируем содержимое счетчика и списка в числа

    double a,b,c=0;

    a=Convert.ToDouble(numericUpDown1.Value);

    b=Convert.ToDouble(listBox1.SelectedItem);

   

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

    if (radioButton1.Checked)

        c=a+b;

    else if (radioButton2.Checked)

        c=a-b;

    else if (radioButton3.Checked)

        c=a*b;

    else

        c=a/b;

   

    //выводим результат   

    //если выбранн первый флажок, выдаем ответ в сообщении

    if (checkBox1.Checked)

        MessageBox.Show(Convert.ToString(c));

   

    //если выбран второй флажок, выдаем ответ в новой форме

    if (checkBox2.Checked)

    {

        //создаем форму в памяти       

        Form2 form2 = new Form2();

        //метке на новой форме присваиваем результат

        form2.label1.Text="Ответ: "+Convert.ToString(c);

        //отображаем созданную форму

        form2.Show();

    }

}

 

На второй закладке разместите два флажка для настройки параметров программы:

 

 

Первый флажок блокирует или разблокирует поле счетчика для ввода данных с клавиатуры.

 

Второй флажок скрывает или отображает панель с компонентами для редактирования списка.

 

Указания: на второй закладке разместите два компонента CheckBox и в свойстве Text введите тексты надписей.

Для первого флажка в событии Click введите код:

 

void checkBox3_Click(object sender, EventArgs e)

{

    //свойству ReadOnly счетчика

    //задаем противоположное значение свойства Checked флажка

    numericUpDown1.ReadOnly=!checkBox3.Checked;

    //переходим на первую закладку

    tabControl1.SelectedIndex=0;

}

 

 Для второго флажка  в событии Сlick введите код:

 

void checkBox4_Click(object sender, EventArgs e)

{

    //свойству Visible рамки

    //задаем значение свойства Сhecked флажка

    groupBox1.Visible=checkBox4.Checked;

    //переходим на первую закладку

    tabControl1.SelectedIndex=0;

}