• Domingo 22 de Diciembre de 2024, 10:23

Autor Tema:  Asignar eventos a varias etiquetas  (Leído 999 veces)

Igu

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Asignar eventos a varias etiquetas
« en: Lunes 9 de Agosto de 2010, 10:55 »
0
Muy buenas.

Os cuento un poco mi problema. Mi programa trata de hacer un laberinto, cuyas paredes son etiquetas de un tamaño predefinido sin texto y de un color diferente al del formulario, el programa lo que hace es cuando metes el puntero del ratón dentro de una etiqueta lo devuelve al punto de inicio. Todo eso lo hacía correctamente ya que el laberinto era siempre el mismo y nunca cambiaba. El problema vino al plantearme una mejora del programa, que consistía en crear un número aleatorio de etiquetas  de forma dinámica y cada vez cambiar su ubicación. Antes para asignar a  las etiquetas el evento "mouseenter" lo que hacía era seleccionarlas todas, asignarles a todas el mismo evento. Ahora como se crean en tiempo de ejecución no sé como hacerlo.

Saludos¡¡¡

Painkiller

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Asignar eventos a varias etiquetas
« Respuesta #1 en: Lunes 9 de Agosto de 2010, 20:19 »
0
para asignar nuevos eventos a instancias creadas en tiempo de ejecucion se emplea la siguiente asignacion:
Código: C#
  1.  
  2. Label lblGenerated = new Label();
  3. //Se inicializan valores (posicion, texto, etc.)
  4. lblGenerated.MouseEnter += new EventHandler(lblGenerated_MouseEnter);
  5.  
  6.  

En el cual lblGenerated_MouseEnter es el nombre de la funcion que va a atender el evento. Un punto importante a notar es que se necesita que la firma de la aplicacion coincida con la del delegado definido para el evento. Si no se conoce la firma del delegado el autocomplete de VisualStudio ofrece la opcion de generarla  :good:

Igu

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Asignar eventos a varias etiquetas
« Respuesta #2 en: Martes 10 de Agosto de 2010, 10:30 »
0
Problema solucionado ¡¡¡ Muchas gracias, ha sido ponerlo y funcionar.
Saludos ¡¡