Bueno, segun lo que veo cuando numero2 es igual a 0 si te pone el "math error" pero luego seguidamente le metes:
textBox1.Text = Convert.ToString(division);
con lo que estas borrando el math error.
supongo que esta seria la solucion:
else if (ondivi)
{
numero2 = Convert.ToDouble(textBox1.Text);
textBox1.Text = "";
if (numero2 == 0)
textBox1.Text = "math error";
else
{
division = (numero1 / numero2);
textBox1.Text = Convert.ToString(division);
}
button24.Enabled = true;
ondivi = false;
}
digo supongo porque creo que el button24.Enabled = true; y ondivi = false; se ejecuten sea o no "numero2" igual a 0
recuerda que las sentencias if, else, else if, for, etc...
deben ir seguidos de { } y dentro de los corchetes metes todo el codigo que quieras que ejecute la sentencia.
si no los pones, que tambien es correcto, solo te ejecutarán la siguiente linea, que en este caso era el (division = (numero1 / numero2)
y las siguientes 3 lineas se ejecutan sea o no numero2 igual a cero.
Espero haberme explicado bien (soy un poco malo para ello) y espero que ese esa el error.
Si te quedas con cualquier duda avisa. Saludos