Я получаю сообщение об ошибке textBox2.Clear (); (исключительная обработка, но данные вставляются успешно) без этого программа работает нормально,
textBox4.Clear();
textBox1.Clear(); // This is the first problem
textBox2.Clear(); // This is the second problem
textBox3.Clear();
Причина этой ошибки - событие textBox2_TextChanged
. Внутри вы пытаетесь использовать свойство Text
для выполнения вычислений, это не удается, потому что свойство Text
пусто и его не удается преобразовать.
textBox3.Text = Convert.ToString(Convert.ToInt32(textBox1.Text) * Convert.ToInt32(textBox2.Text));
Чтобы это исправить, вы можете сначала проверить , если свойство Text
может быть успешно проанализировано перед его использованием с использованием метода Int.TryParse вместе с переменной out; доступен только таргетинг C# >= 7.0
. Например:
private void textBox2_TextChanged(object sender, EventArgs e)
{
if(int.TryParse(textBox1.Text, out int txt1) && int.TryParse(textBox2.Text, out int txt2))
{
textBox3.Text = (txt1 * txt2).ToString();
}
}
Другая версия, которую вы, возможно, могли бы использовать, ориентируясь на версии старше C# 7.0:
private void textBox2_TextChanged(object sender, EventArgs e)
{
int txt1;
int txt2;
if(int.TryParse(textBox1.Text, out txt1) && int.TryParse(textBox2.Text, out txt2))
{
textBox3.Text = (txt1 * txt2).ToString();
}
}