Controles y eventos

Controles y eventos

Windows es un sistema basado en eventos. Esto quiere decir que cualquier cosa que ocurra dentro de un formulario, bien sobre el propio formulario, o a cualquiera de los controles que lo componen, se detecta a través de un suceso o evento: pasar el ratón sobre un control, hacer clic, escribir en un control de texto, cerrar el formulario, redimensionarlo, etc. Cualquier acción de este tipo provoca el evento correspondiente.

En nuestro ejemplo actual, si ejecutamos el programa y hacemos clic sobre alguno de los botones del formulario, no ocurrirá nada en absoluto. ¿Quiere esto decir que los botones no tienen eventos?, la respuesta es no, los botones sí tienen eventos, así como los demás controles, y aunque no lo percibamos, se están produciendo constantemente, lo que sucede, es que una vez que dibujamos un control en un formulario, dicho control inicialmente no está programado para responder a los eventos, por lo que debemos escribir el código para el evento correspondiente, en respuesta a la acción del usuario.

Siguiendo con los botones del formulario, vamos a elegir el más sencillo de codificar, btnSalir. Para escribir el código del evento correspondiente a la pulsación de este control, la forma mas rápida es haciendo doble clic sobre él en el diseñador del formulario, lo que abrirá el editor de código y nos situará en un procedimiento vacío que mostramos en el Código fuente 23.

Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalir.Click

End Sub

Código fuente 23. Procedimiento para el evento Click de un Button.

Se trata de un procedimiento cuyo nombre, btnSalir_Click, compuesto del nombre del control y del evento, lo proporciona automáticamente el IDE. Recibe dos parámetros: sender y e, con información adicional proporcionada por el entorno. Pero lo verdaderamente importante está al final de la declaración: “Handles btnSalir.Click”. La palabra clave Handles, seguida del nombre de un control, un punto y el nombre de un evento de ese control, le indica al entorno de .NET Framework que debe ejecutar este procedimiento cuando se produzca el evento para ese control. No realizaremos en este

© Grupo EIDOS 7. Una aplicación con funcionalidad básica

momento una explicación más detallada puesto que trataremos este aspecto con más profundidad en temas posteriores del texto.

Este procedimiento será ejecutado cada vez que pulsemos el control btnSalir, por lo que si en tal situación, queremos cerrar el formulario, sólo será necesario incluir la línea de código mostrada en el Código fuente 24.

Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalir.Click

' cerrar el formulario Me.Close()

End Sub

Código fuente 24. Código del evento Click para cerrar un formulario.

El método Close( ) del formulario, produce su cierre, y por ende, la finalización del programa. El efecto es el mismo que si pulsamos el botón de cierre del formulario o la combinación [ALT+F4]. La palabra clave Me indica que estamos haciendo usando una propiedad o método del formulario desde el interior de la clase del propio formulario; esta palabra clave será explicada con más detalle en el tema dedicado a la programación orientada a objeto.

Ahora nos formularemos una interesante cuestión: -¿Y por qué sabía VS.NET cuál evento quería codificar y me lo ha mostrado directamente?-. Pues sencillamente, VS.NET no lo sabía, lo que sucede es que cuando hacemos doble clic sobre un control en el diseñador del formulario, se abre el editor de código y nos sitúa en el evento por defecto del control. Y sucede que el evento por defecto de un control Button es Click( ).