8.3. Usando ventanas predefinidas
En una aplicación basada en ventanas, típicamente tendremos que mostrar algún mensaje de aviso, o pedir una confirmación al usuario. Para ello podríamos crear un programa basado en múltiples ventanas, pero eso queda más allá de lo que pretende este texto.
Una forma alternativa y sencilla de conseguirlo es usando "ventanas de mensaje". Éstas se pueden crear llamando a "MessageBox.Show", que tiene varias sintaxis posibles, según el número de parámetros que queramos utilizar. Por ejemplo, podemos mostrar un cierto texto en una ventana que tenga un "caption" dado:
MessageBox.Show("Ese nombre no es válido", "Aviso");
La segunda variante es indicar además qué botones queremos mostrar, y qué iconos de aviso:
MessageBox.Show("Ese nombre no es válido", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Y la tercera variante permite indicar además cual será el botón por defecto:
MessageBox.Show("¿Seguro que desea continuar?", "Confirma, por favor", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
Como se ve en estos ejemplos, tenemos algunos valores predefinidos para indicar qué botones o iconos queremos mostrar:
- Los botones (MessageBoxButtons) pueden ser: OK (Aceptar), OKCancel (Aceptar y Cancelar), AbortRetryIgnore (Anular, Reintentar y Omitir), YesNoCancel (Sí, No y Cancelar), YesNo (Sí y No), RetryCancel (Reintentar y Cancelar).
- Los iconos (MessageBoxIcon) pueden ser: None (ninguno), Hand (X blanca en un círculo con fondo rojo), Question (signo de interrogación en un círculo, no recomendado actualmente), Exclamation (signo de exclamación en un triángulo con fondo amarillo), Asterisk (letra 'i' minúscula en un círculo), Stop (X blanca en un círculo con fondo rojo), Error (X blanca en un círculo con fondo rojo), Warning (signo de exclamación en un triángulo con fondo amarillo), Information (letra 'i' minúscula en un círculo).
- Los botones (MessageBoxDefaultButton) por defecto pueden ser: Button1 (el primero), Button2 (el segundo), Button3 (el tercero).
Si queremos que el usuario responda tecleando, no tenemos ninguna ventana predefinida que nos lo permita (sí existe un "InputBox" en otros entornos de programación, como Visual Basic), así que deberíamos crear nosotros esa ventana de introducción de datos desde el editor visual o mediante código, elemento por elemento.