Creo que el problema viene al utilizar Convert.ToSingle con el campo textBox1.Text con cadena vacia. Esto sucede por ejemplo:
Al no poner valor y pulsar un signo
Esto provoca que aparezca el messagebox y al dar a aceptar peta debido a que continua con el texto y al ejecutar el Convert.ToSingle explota el código. Para ello debes poner:
if (textBox1.Text == "") { MessageBox.Show("Señor..¿Usted esta intentando realizar una operacion sin numeros?"); return; }
Al pulsar dos signos seguidos
Cuando se pulsan dos signos seguidos, el primer borra el campo textBox1.Text poniendo en él una cadena vacía, y al volver a pulsar seguidamente pasa lo del punto anterior.
Poniendo el return debería funcionarte
Salu2
Xavi Paper