Top.Mail.Ru

MS Visual Studio 2010. Тест

Изучение элементов управления  TabControl, RadioButton, CheckBox.

Разработать приложение – тест по информатике. Должно быть три страницы, на каждой странице помещен вопрос и варианты ответов. На первой и второй страницах можно выбрать только один вариант из предложенных ответов, на третьей – несколько. После нажатия кнопки "Результат" выводится окошко с сообщением о результатах теста.

тест

Элемент управления TabControl

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

Свойство TabPages — важнейшее у элемента управления TabControl. Оно представляет собой набор элементов управления TabPage, каждый из которых обладает собственным набором свойств. Чтобы получить доступ к любому из объектов TabPage, достаточно щелкнуть вкладку, которую он представляет

Отдельные элементы управления TabPage весьма напоминают панели (Panel): они также поддерживают прокрутку и создают внутри формы-контейнера «вложенные формы», в свою очередь способные быть контейнерами для других элементов управления. Чтобы включить прокрутку содержимого для TabPage, необходимо установить его свойство Autoscroll в true.

Элементы управления TabPage добавляют к TabControl, устанавливая его свойство TabPages. При выборе в окне дизайнера свойства TabPages открывается редактор наборов, позволяющий добавлять к TabControl элементы управления TabPage и устанавливать свойства для любого из них. Чтобы разместить на добавленной вкладке необходимые элементы управления, щелкните эту вкладку в окне дизайнера. Во время выполнения пользователь сможет открывать нужные вкладки, щелкая их ярлычки.

редактор коллекции

Флажки с независимой фиксацией (CheckBox)

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

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

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

Свойство Checked отвечает за «помечен» «не помечен».

Алгоритм тестирования

Каждому варианту ответа присваивается «вес» – число баллов. Для правильных ответов «вес»=1, для неправильных «вес»=0. Подсчитывается общая сумма баллов, и в зависимости от результата выставляется оценка.

Вес варианта ответа записывается в свойстве Tag каждого компонента.

Свойство Tag – число, связанное с компонентом. Оно не несет никакой смысловой нагрузки, и программист может использовать его по своему усмотрению.

Разработка приложения

Откройте среду Microsoft Visual Studio и создайте новый проект (решение) с именем «Test».

Разместите на форме элементы управления, как на рисунке выше.

Задать для всех компонентов соответствующие значения Text и Font.

Для компонентов RadioButton и CheckBox с правильными ответами  задать значения для свойства Tag=1

При щелчке на кнопке «Результат» проверяются все компоненты RadioButton и CheckBox. Если компонент помечен, то число, хранящееся в его свойстве Tag, прибавляется к общей сумме баллов. Сумма баллов хранится в переменной S.

private void btn_itog_Click(object sender, EventArgs e)

        {

            int s = 0;

            string c;

     // если радиокнопка помечена, то свойство Tag добавляем к s

            if (rb1.Checked)  s += Convert.ToInt32(rb1.Tag);

            if (rb2.Checked)  s += Convert.ToInt32(rb2.Tag);

            if (rb3.Checked)  s += Convert.ToInt32(rb3.Tag);

       //  ………………………………………..  и так далее для всех RadioButton

            if (checkBox1.Checked)  s += Convert.ToInt32(checkBox1.Tag);

            if (checkBox2.Checked)  s += Convert.ToInt32(checkBox2.Tag);

            if (checkBox3.Checked)  s += Convert.ToInt32(checkBox3.Tag);

     //   ………………………………………………….  И так далее для всех CheckBox

          

// в зависимости от значения переменной s выводится результат:

 switch (s)

            {

                case 2:

                    c = "Плохо"; break;

                case 3:

 case 4:

 case 5:

                    c = "Удовлетворительно"; break;

                case 6:

                case 7:

                    c = "Хорошо"; break;

                case 8:

                    c = "Отлично"; break;

                default: c = "Очень плохо"; break;

            }

            MessageBox.Show("Ваша оценка: " + c, "Оценка за тест");

        }

Нажатие кнопки «Выход»

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

private void btn_exit_Click(object sender, EventArgs e)

        {

            if (MessageBox.Show("Закончить работу?", "Завершение работы",

                MessageBoxButtons.YesNo, MessageBoxIcon.Question,

                MessageBoxDefaultButton.Button2) == DialogResult.Yes)

                Application.Exit(); 

        }