Уроки по созданию приложений для Windows в Visual Studio 2010 .Net (C#)
- Муслимова А. Г.
- Уроки по созданию приложений для Windows в MS Visual Studio 2010 .Net (C#)
- Просмотров: 3874
MS Visual Studio 2010. Пересчет скорости
Контроль правильности ввода числовых данных в элемент управления TextBox.
Разработать приложение, с помощью которого можно пересчитать скорость, заданную в м/с в км/ч, и наоборот. Приложение должно осуществлять контроль правильности ввода данных.
Флажки с зависимой фиксацией (RadioButton)
Такие флажки объединяются в группы, причем в отмеченном состоянии может находиться лишь один флажок из группы. Свойство Checked отвечает за «помечен» «не помечен».
Разработка приложения
Откройте среду Microsoft Visual Studio и создайте новый проект (решение) с именем «Velocity».
Разместите на форме элементы управления, как на рисунке выше.
Задайте элементам управления имена:
lb_out – Label комментария для textBox;
lb_in – Label для вывода результата пересчета;
rb_m_to_k – RadioButton для перевода м/с в км/час;
rb_k_to_m – RadioButton для перевода километров в метры;
Теперь нам необходимо определить переменные, которые мы будем использовать в программе.
ms – для хранения скорости в м/с;
kmh – для хранения скорости в км/ч.
Эти переменные целого типа должны быть видимы во всех методах приложения, поэтому объявим их сразу в начале объявления класса Form1:
public partial class Form1: Form
{
double ms = 0, kmh = 0;
public Form1()
В поле Скорость (textBox1) можно вводить только цифры и запятую (для записи вещественного числа). Надо написать код, который будет проверять, является ли введенный символ допустимым. Если нет, то символ в поле редактирования нельзя отображать.
Данный код нужно написать на событие KeyPress для поля textBox1.
Этот код используйте в приложениях, где необходимо проверять, является ли введенный символ допустимым.
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// разрешаем ввести первый минус
if (textBox1.Text.Length == 0) { if (e.KeyChar == '-')return; }
//если введена точка, то преобразуем ее в запятую
if (e.KeyChar == '.') e.KeyChar = ',';
//если длина строки не = 0 и символ запятая
if ((textBox1.Text.Length != 0) && (e.KeyChar == ','))
{
// сразу после знака "минус" вводить запятую нельзя!
if ((textBox1.Text.Length == 1) && (textBox1.Text[0] == '-'))
{
e.Handled = true;
return;
}
else
{// если запятая еще ни разу не вводилась, то можно
if (textBox1.Text.IndexOf(",") == -1) return;
}
}
// если набранный символ цифра, то можем вводить
if (Char.IsDigit(e.KeyChar)) return;
// можем использовать клавишу BackSpace
if (e.KeyChar == (char)Keys.Back) return;
// все другие символы вводить запрещено
e.Handled = true;
}
При выборе одного из RadioButton (событие Click) нужно:
- вывести надпись в метку («Скорость в м/с:» или («Скорость в км/ч:»);
- очистить свойство Text для метки lbOut (см. exe-файл).
На изменение текста в элементе управления TextBox нужно:
private void textBox1_TextChanged(object sender, EventArgs )
{
lb_out.Text = ""; // очистка поля отображения результата
// если в поле редактирования нет данных, то делаем кнопку ОК недоступной
if (textBox1.Text.Length == 0) button1.Enabled = false;
else button1.Enabled = true; // иначе – делаем кнопку ОК доступной
}
Напишите код на событие Click для кнопки «Пересчёт»:
private void button1_Click(object sender, EventArgs e)
{
if (rb_m_to_k.Checked) // если помечен первый radioButton
{
lb_in.Text = "Скорость в м/с: "; // вывод комментария
ms = Convert.ToDouble(textBox1.Text); // преобразуем значение из cтроки в вещественное число
kmh = ms * 3.6; // переводим м/с в км/час
lb_out.Text = ms + " м/с это " + kmh + " км/ч"; // выводим на метку результат
}
else
if (rb_k_to_m.Checked) // если помечен второй radioButton
{
lb_in.Text = "Скорость в км/ч: ";
kmh = Convert.ToDouble(textBox1.Text);
ms = kmh / 3.6; // переводим км/час в м/с
lb_out.Text = kmh + " км/ч это " + ms + " м/с";
}
}