Да нет же! Я там чут-ка изменил обработку ошибок, ибо если вставлять MessageBox в обработчике то при стирании будет вызыватся changed ну и собсна он не сможет сложить пустую строку с каким-то числом, собсна вызывается ошибка, а в ошибке textBox, по этому он будет постоянно вызыватся. Лично меня это бы раздражало
Не проще тогда юзать такой код? if (int.TryParse(textBox1.Text, out int a) && int.TryParse(textBox2.Text, out int b)) { textBox3.Text = (a+b).ToString(); } Код if (int.TryParse(textBox1.Text, out int a) && int.TryParse(textBox2.Text, out int b)) { textBox3.Text = (a+b).ToString(); } Он более скромный и без всяких излишеств по типу try catch