¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. C# 10
  3. Implementación del administrador de eventos
Extrait - C# 10 Desarrolle aplicaciones Windows con Visual Studio 2022
Extractos del libro
C# 10 Desarrolle aplicaciones Windows con Visual Studio 2022
4 opiniones
Volver a la página de compra del libro

Implementación del administrador de eventos

Introducción

Los eventos ocurren durante la ejecución de la aplicación. Cada control, incluidos los formularios, pueden desencadenar varios eventos como respuesta a una acción del usuario. Por ejemplo, cuando se pulsa sobre un control de tipo Button, se desencadena un evento Click. Si los métodos llamados controladores de eventos están suscritos a este evento, se ejecutan.

Cada control tiene un evento por defecto. Haciendo doble clic sobre el control, Visual Studio crea el controlador del evento asociado. Para la mayor parte de los controles, se trata del evento Click.

La creación de controladores de eventos

Haga doble clic en el elemento de menú Servidor Mail del formulario Main. Visual Studio abre el archivo de código asociado con la implementación base del controlador de eventos:

private void MailServerMenu_Click(object sender, EventArgs e)  
{  
} 

El método se marca con la palabra clave private. Como primer argumento admite un objeto de tipo object, que representa el objeto que desencadena el evento y, como segundo argumento, un objeto de tipo EventArgs, que contiene información adicional del evento.

Añada el siguiente código al controlador de eventos:

new MailServerSettings().ShowDialog(); 

Esta instrucción crea una nueva instancia del objeto de tipo MailServerSettings y la muestra de manera modal. Para probar el controlador de eventos basta con ejecutar la aplicación ([F5]) y pulsar en el menú Servidor Mail. Si utiliza el acceso rápido de teclado o la tecla de acceso directo que se ha definido, el evento también se desencadena.

Los controles tienen muchos eventos. Es posible acceder a ellos desde la ventana de propiedades, pulsando en el icono Eventos images/09SO001.png.

Basta con pulsar dos veces en el evento que desee, para que Visual Studio genere el código asociado. Cree un controlador de eventos para el botón Validar del formulario MailServer-Settings.

images/cap09_img_01.png

Visual Studio genera un método privado...

Los controladores de eventos avanzados

1. Un controlador para varios eventos

Un controlador se puede suscribir a varios eventos diferentes. Es útil cuando varios objetos o controles deben desencadenar la misma acción y esto evita tener que crear varios controladores idénticos.

La asociación se hace, normalmente, asociando al evento un delegado que apunta hacia el método, salvo que el delegado sea idéntico para los dos eventos:

this.Valid.Click += new EventHandler(this.Valid_Click);  
this.Cancel.Click += new EventHandler(this.Valid_Click); 

Puede empezar declarando e instanciando el delegado y después asociarlo a varios eventos:

EventHandler newHandler = new EventHandler(this.Valid_Click);  
this.Valid.Click += newHandler;  
this.Cancel.Click += newHandler; 

Cuando varios controles desencadenan el mismo evento, es posible distinguir las acciones que se deben realizar utilizando el argumento sender que se pasa al controlador de eventos:

private void Valid_Click(object sender, EventArgs e)  
{  
    MessageBox.Show((sender as Control).Name);  
} 

2. Varios controladores para un evento

De manera inversa, es posible asociar varios controladores para un mismo evento. La asociación se hace de manera habitual con el operador +=:

this.Valid.Click += new System.EventHandler(this.Valid_Click1); 
this.Valid.Click += new System.EventHandler(this.Valid_Click1); ...