Калькулятор с использованием maskedtextbox C#
Только изучаю C#, стоит задача - сделать калькулятор времени с использованием формы.
Решила остановиться на maskedtextbox в качестве полей для ввода и вывода времени в формате чч:мм:cc.
Но не могу точно разобраться как обрабатывать вводимые данные в этих полях.
В прослушивании кнопки "Посчитать" с помощью Switch и case расписала производимые операции. Но у меня проблема с объявлением переменных, какого типа данных они должны в таком случае быть?
Код при прослушивании:
{
int a, b;
a = Convert.ToInt16(maskedTextBox1.Text);
b = Convert.ToInt16(maskedTextBox2.Text);
switch (comboBox1.Text)
{
case "+":
maskedTextBox3.Text = Convert.ToString(a + b);
break;
}
}
Выходит ошибка: Входная строка имела неверный формат
Ответы (1 шт):
Судя по описанию, вы хотите считать время. Для этого можно использовать тип TimeSpan.
Судя скриншоту, вы используете следующие маски: "00:00:00".
Содержимое свойства Text контрола MaskedTextBox будет зависеть от значения TextMaskFormat. По умолчанию оно равно MaskFormat.IncludeLiterals.
В таком формате его можно напрямую распарсить с помощью методов Parse или TryParse.
Код может выглядеть примерно так:
TimeSpan timeSpan1 = TimeSpan.Parse(maskedTextBox1.Text);
TimeSpan timeSpan2 = TimeSpan.Parse(maskedTextBox2.Text);
TimeSpan result = timeSpan1 + timeSpan2;
maskedTextBox3.Text = result.ToString();
