На этом уроке мы напишем программу для тренировки устного счёта.
Задание: Сделать тренажёр устного счёта по основным арифметическим операциям.
Дата отправки отчёта:
14 декабря 2015 г.
Задание выполнено: за
3 час. 00 мин.
Чему научился:
Выводить данные в метки и в текстовые окна, считывать данные из меток и текстовых окон, распознавать нажатие кнопки Enter, программно задавать фокус, попрактиковался в программировании секундомера.
Что было сложным:
Совершенно измучился с тем, что на втором и последующем шагах в элементе text_answer почему-то добавляется \r\n. Мучился с этим не менее 3-х часов – так и не понял, с чем это связано. Соответственно, после первого шага не работает сравнение: if (text_answer.Text == answer) В конце концов, нашел следующее решение с конвертацией в целое число: if (Convert.ToInt32(text_answer.Text) == Convert.ToInt32(answer)) Кто-нибудь может объяснить мне, в чем тут дело?
Комментарии:
Остался вопрос: почему на втором и последующем шагах в элемент text_answer добавляется значение \r\n? Также не понял, почему в начале работу программы я не смог сместить фокус с элемента text_answer?
Александр, проверьте в свойствах text_answer значение свойства MultiLine. Я попробовал представить Вашу ситуацию, изменил на MultiLine = true, в итоге при if (Convert.ToInt32(text_answer.Text) == Convert.ToInt32(answer)) система корректно удаляет начальные или конечные whitespace символы. Если же сравнивать сами строки, то как раз \r\n добавляется перед вводимым ответом, поэтому ошибка. Нужно установить MultiLine = false.
Большое спасибо, Евгений Витольдович! Причина моей ошибки была в том, что для текстового окна я установил параметр MultiLine=true. Установка фокуса на текстовое окно в начале работы, как оказалось, произошло из-за того, что его параметр TabIndex был равен 0.
Научился: Из данного видеоурока создал игру, в которой можно выбирать режимы для игры. При вводе правильного ответа продвигается progressBar, при неправильном ответе игра заканчивается, узнал про свойство mode устанавливающее режим игры, узнал как описывать условия при котором будет выбран тот или иной режим игры а также описывать их решения, узнал про событие KeyDown и как его обрабатывать. Трудности: Придумать идею для приложения. К программе дополнил следующие возможности: SplashScreen (загрузочный экран при запуске приложения), несколько работающих вкладок, условие выхода из приложения (выйти или нет), добавил еще одну метку показывающая что игра началась, и кнопку "Выйти из текущего режима", которая доступна только при выборе одного из режимов (думаю это будет полезная фишка).