Codificación de los eventos de controles

Codificación de los eventos de controles

Windows es un sistema operativo orientado a eventos, por lo que cualquier mínima interacción que realicemos sobre un formulario o control, generará el oportuno evento, para el que si estamos interesados, deberemos responder.

Prosiguiendo con el control Button, cuando pulsamos sobre el mismo, se origina el evento Click de dicho control. Si dibujamos un Button en un formulario y pulsamos en él, no ocurrirá nada, ya que aunque el evento se produce, no existe código que le proporcione respuesta.

Para dar oportuna respuesta a un evento emitido por un control, debemos escribir un procedimiento manipulador del correspondiente evento. La creación de manipuladores de evento es un aspecto que ya hemos visto en detalle en el tema Delegación de código y eventos. De igual modo, los aspectos básicos

de la escritura de código para un evento se comentaron en el tema Una aplicación con funcionalidad básica; sugerimos por lo tanto al lector, la consulta de estos temas para cualquier referencia básica que necesite al respecto.

No obstante, en el presente apartado, y para reforzar conceptos, realizaremos un repaso del proceso de creación del manipulador de evento para un control.

Como ejemplo, insertaremos en un formulario un control Button, al que daremos el nombre btnMensaje, y en su propiedad Text asignaremos la cadena Mostrar mensaje.

Seguidamente haremos doble clic sobre el Button; esta acción abrirá la ventana del editor de código, creando al mismo tiempo, la declaración o esqueleto del procedimiento manipulador de evento Click del botón, listo para ser codificado.

Ya que necesitamos que se muestre un mensaje al ser pulsado este control, utilizaremos el objeto MessageBox de la plataforma, llamando a su método compartido Show( ), para visualizar el mensaje. En definitiva, el manipulador de este evento quedaría como muestra el Código fuente 438.

Private Sub btnMensaje_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMensaje.Click

MessageBox.Show("Se acaba de pulsar el botón del formulario")

End Sub

Código fuente 438.

El resultado en ejecución, sería el que muestra la Figura 238. Observando con más detalle el procedimiento del evento, vemos que al final de su declaración,

aparece la palabra clave Handles, que como vimos en el tema sobre eventos, nos sirve para asociar esta rutina de código con un evento de un objeto. En el ejemplo que nos ocupa, asociamos el procedimiento btnMensaje_Click( ), con el evento Click del objeto btnMensaje, perteneciente a la clase Button.

Programación con Visual Basic .NET © Grupo EIDOS

Figura 238. Resultado de la ejecución del evento Click de un control Button, al ser pulsado.

Como ya sabemos, el enlace procedimiento-evento de objeto mediante la palabra Handles, se produce

de modo estático. Esto requiere que en el código, el identificador que contenga el objeto del control, deba ser declarado con ámbito a nivel de clase, y utilizando además la palabra clave WithEvents. Dicha tarea es realizada automáticamente por el diseñador del formulario cuando genera el código del mismo. Veamos en el Código fuente 439, el fragmento de código generado por el diseñador que realiza esta labor.

' esta declaración es situada a nivel del código ' de la clase del formulario, es decir, ' fuera de cualquier método Friend WithEvents btnMensaje As System.Windows.Forms.Button

Código fuente 439.