Поделиться через


Руководство по настройке приложения WinForms для математических тестов

В этой серии четырех учебников вы создадите математический тест. Тест содержит четыре случайных математических задания, которые участник должен решить в течение указанного времени.

В этом руководстве показано, как улучшить тест, очищая значения по умолчанию и настраивая внешний вид элементов управления.

В этом заключительном руководстве описано, как:

  • Добавьте обработчики событий для очистки значений элементов управления NumericUpDown по умолчанию.
  • Настройте тест.

Необходимые условия

Это руководство основано на предыдущих учебниках, начиная с Созданияприложения WinForms для математических викторин. Если вы еще не выполнили эти уроки, сначала изучите их.

Добавление обработчиков событий для элементов управления NumericUpDown

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

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

    снимок экрана, на котором показана панель инструментов диалогового окна

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

  2. Выберите событие ВВОД, введите ответ_ВВОД, а затем выберите ВВОД.

    Снимок экрана, на котором отображается диалоговое окно

    Открывается редактор кода, и появляется, отображая обработчик события Enter, созданный для элемента управления sum NumericUpDown.

  3. В методе обработчика событий answer_Enter добавьте следующий код:

    private void answer_Enter(object sender, EventArgs e)
    {
        // Select the whole answer in the NumericUpDown control.
        NumericUpDown answerBox = sender as NumericUpDown;
    
        if (answerBox != null)
        {
            int lengthOfAnswer = answerBox.Value.ToString().Length;
            answerBox.Select(0, lengthOfAnswer);
        }
    }
    

В этом коде:

  • Первая строка объявляет метод. Он включает параметр, который называется sender. В C#параметр object sender. В Visual Basic это sender As System.Object. Этот параметр относится к объекту, который инициирует событие и называется инициатором. В этом случае объект отправителя является элементом управления NumericUpDown.
  • Первая строка внутри метода приводит или преобразует отправителя из объекта общего типа в элемент управления NumericUpDown. Эта строка также назначает имя answerBox элементу управления NumericUpDown. Все элементы управления NumericUpDown на форме будут использовать этот метод, а не только элемент управления, связанный с задачей сложения.
  • В следующей строке проверяется, удалось ли привести answerBox к элементу управления NumericUpDown.
  • Первая строка внутри оператора if определяет длину ответа, который в настоящее время находится в контроле NumericUpDown.
  • Вторая строка в инструкции if использует длину ответа для выбора текущего значения в элементе управления.

Когда участник теста выбирает элемент управления, Visual Studio запускает это событие. Этот код выбирает текущий ответ. Как только пользователь начинает вводить другой ответ, текущий ответ очищается и заменяется новым.

  1. В конструкторе Windows Formsснова выберите элемент управления NumericUpDown задачи на сложение.

  2. На странице событий диалогового окна "Свойства " найдите событие и выберите answer_Enter в раскрывающемся меню. Этот обработчик событий — тот, который вы только что добавили.

  3. В конструкторе Windows Formsвыберите элемент управления NumericUpDown для задачи вычитания.

  4. На странице События диалогового окна "Свойства " найдите событие Ввод, затем выберите answer_Enter в раскрывающемся меню. Этот обработчик событий — тот, который вы только что добавили. Повторите этот шаг для события Click.

  5. Повторите предыдущие два шага для контролов NumericUpDown на умножение и деление.

Запуск приложения

  1. Сохраните программу и запустите ее.

  2. Запустите викторину и выберите элемент управления NumericUpDown. Существующее значение устанавливается по умолчанию, а затем очищается, когда вы начинаете вводить другое значение.

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

Настройка теста

В этой последней части руководства вы изучите некоторые способы настройки теста и расширения того, что вы узнали.

Изменение цвета метки

  • Используйте свойство BackColor элемента управления timeLabel, чтобы сделать эту метку красной, когда в тесте остается всего пять секунд.

    timeLabel.BackColor = Color.Red;
    
  • Сбросьте цвет после завершения теста.

Воспроизведение звука для правильного ответа

Дайте участнику теста подсказку, проигрывая звук, когда правильный ответ вводится в элемент управления NumericUpDown. Чтобы реализовать эту функцию, напишите обработчик событий для каждого события ValueChanged элемента управления. Этот тип события возникает всякий раз, когда участник теста изменяет значение элемента управления.

Дальнейшие действия

Поздравляю! Вы закончили эту серию учебной программы. Вы выполнили следующие задачи программирования и проектирования в интегрированной среде разработки Visual Studio:

  • Создание проекта Visual Studio, использующего Windows Forms
  • Добавлены метки, кнопки и элементы управления NumericUpDown
  • Добавлен таймер
  • Настройка обработчиков событий для элементов управления
  • Написанный код C# или Visual Basic для обработки событий

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