Уроки по созданию приложений для Windows в Visual Studio 2010 .Net (C#)
- Муслимова А. Г.
- Уроки по созданию приложений для Windows в MS Visual Studio 2010 .Net (C#)
- Просмотров: 5438
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();
}