Visual CSharp .NET - Pregunta sobre eventos

 
Vista:

Pregunta sobre eventos

Publicado por Pableras (13 intervenciones) el 02/04/2007 11:01:39
Hola, qué tal ??

He hecho un calendario(control de usuario) que tiene 2 combos arriba(para el año y el mes) y un montón de botones abajo, los días(puestos en pequeñito), que se visualizan o se ocultan según el año y el mes que haya seleccionado (los combos tienen el AutoPostBack a true).

Tengo 36 botones en total (yo utilizo 36, el porqué es lo de menos)

Quiero que cuando pinche en uno, se seleccione, es decir, que cambie de color (cambiar la propiedad BackgroundColor del botón).

Pero claro, tengo 36 botones, y mi pregunta es:

Tengo que poner 36 eventos onclick , con esa línea de código (la de cambiar el color de fondo del botón) , uno para cada botón??? Es que me parece una burrada el ponerte a meter 36 eventos onclick en el codigo y muy poco elegante además.

No hay algo que se pueda hacer (no sé si con los "delegados" esos que llaman) para que no haya que meter esos 36 eventos, y que se llamara automáticamente a una función a la que cuando se hace click en un botón cualquiera se acceda(viendo cuál de los 36 botones ha provocado el onclick)???

Muchísimas gracias en cualquier caso . ciauuuuuu
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pregunta sobre eventos

Publicado por Jonathan Gonzalez (1 intervención) el 04/05/2007 21:57:25
Ok, no cuentas con que lenguaje estás tratando de realizar esto, pero bueno de cualquier forma de doy la solucion en C# con un solo eventhandler para tus 36 botones.

Ejemplo en C#:

protected void Page_Load(object sender, EventArgs e)
{
Button1.Click += new EventHandler(ClickGenerico);
Button2.Click += new EventHandler(ClickGenerico);
Button3.Click += new EventHandler(ClickGenerico);
Button4.Click += new EventHandler(ClickGenerico);
Button5.Click += new EventHandler(ClickGenerico);
...
Button36.Click += new EventHandler(ClickGenerico);

}

void ClickGenerico(object sender, EventArgs e)
{
Button Boton = sender as Button;
Boton.BackColor = System.Drawing.Color.Beige;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar