Look at your code:
if (textBox6.Text.Length == 0)
{
textBox11.Text = (Convert.ToInt32(textBox7.Text) + Convert.ToInt32(textBox8.Text) + Convert.ToInt32(textBox9.Text) + Convert.ToInt32(textBox10.Text)).ToString();
textBox12.Text = (Convert.ToInt32(textBox5.Text) - Convert.ToInt32(textBox11.Text)).ToString();
}
else if (textBox7.Text.Length == 0)
So why do you think that if "textBox6" has something (gawd knows what) in it, then "textBox7", and "textBox8", and 9, and 10, and 5, and 11 will all have valid numbers in them?
Don't do it like that.
Use int.TryParse to convert each and every text box to a number first, and report any problems back to the user. Then do your checks and use the data!
And BTW two other things:
1) Don't check text that way: use string.IsNullOrWhitespace instead - it means that a space in a text box doesn't count!
2) Please, stop using the default Visual Studio names for things! Using "proper" names may take you 20 seconds longer when you create the textbox or button but it saves you ages later on because it is obvious what the textbox is meant to hold, and you code becomes - at least a little - self documenting.