eventos en C#

17/05/2007 - 14:16 por DarthSidious | Informe spam
hola!!

estoy empezando con C#, ya que es lo que mas se pide..

tengo algunas dudas con respecto a los eventos, porque en los lenguajes como
vb, uno selecciona el evento, introduce el codigo y listo. Pero segun veo en
C# hay que "declarar" que se va a usar ese X evento para cierto control.
En mi caso por ejemplo, queria caputurar el evento KeyPress en un textbox
para ir validando lo que se introduce.
Para hacer tal cosa si pongo lo siguiente no funciona:

this.textBox1.KeyPress += new System.EventHandler(this.textBox1_KeyPress);

me tira este error:

Error 1 No overload for 'textBox1_KeyPress' matches delegate

pero esta sintaxis si funciona con el metodo TextChanged que vi declarado en
form.designer.cs

lo que si funciona es si pongo:

this.textBox1.KeyPress += this.textBox1_KeyPress;

porque la primer forma me da ese error, mientras que esta ultima no?
quiero hacerlo de la forma correcta y mas optima.

desde ya si tienen algun texto entendible sobre eventos en C# se agradece.
Me han dicho que es parecido a como se manejan en java pero no he programado
en java, solo C++

gracias!!

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
17/05/2007 - 14:43 | Informe spam
"DarthSidious" wrote in message
news:
this.textBox1.KeyPress += new System.EventHandler(this.textBox1_KeyPress);

me tira este error:

Error 1 No overload for 'textBox1_KeyPress' matches delegate



Esencialmente el mensaje de error te está diciendo que textBox1_KeyPress
no tiene los argumentos correctos. Tiene que coincidir con la definición
esperada por System.EventHandler (el delegado), que en este caso es asi:

void textBox1_KeyPress(object sender, EventArgs e)

Si le has puesto otros argumentos distintos a la rutina, te da ese error.
Respuesta Responder a este mensaje
#2 DarthSidious
17/05/2007 - 14:58 | Informe spam
claro, dicho evento no tiene los argumentos que me permiten ver que tecla se
preciono, asique lo cambie a KeyPressEventArgs en lugar de EventArgs... la
pregunta seria, como defino un nuevo EventHandler que tenga los parametros
que necesito? o sea, como hago en C# para agregar un Evento como KeyPress que
no esta por default ????

gracias!!

"Alberto Poblacion" wrote:

"DarthSidious" wrote in message
news:
> this.textBox1.KeyPress += new System.EventHandler(this.textBox1_KeyPress);
>
> me tira este error:
>
> Error 1 No overload for 'textBox1_KeyPress' matches delegate

Esencialmente el mensaje de error te está diciendo que textBox1_KeyPress
no tiene los argumentos correctos. Tiene que coincidir con la definición
esperada por System.EventHandler (el delegado), que en este caso es asi:

void textBox1_KeyPress(object sender, EventArgs e)

Si le has puesto otros argumentos distintos a la rutina, te da ese error.



Respuesta Responder a este mensaje
#3 Daniel A. Calvin
17/05/2007 - 15:59 | Informe spam
Hola DarthSidious

Aclaremos algo, mas alla del lenguaje en el que estas (vb, c#, etc, etc),
los eventos y sus argumentos son los expuestos por la clase en cuestion, en
tu caso TextBox.

Los argumentos de esos eventos son los declarados en la clase que los
exponen a su vez.

No hay diferencia segun el lenguaje.

Si lo que necesitas es suscribirte a un evento determinado de algun control,
mas alla de que lo podes hacer a mano, selecciona el control en el
formulario, en la caja de propiedades hace click en el boton que tiene el
icono de un rayo o algo parecido y te apareceran los eventos expuestos por el
control.
Si haces doble click en el evnto que te interesa vs creara el codigo de
suscripción y el esqueleto del metodo que impelmenta el delegado correcto. De
hcho pasa a modo edicion de codigo y te deja parado para completar el evento.

Saludos

Daniel A. Calvin
MCP


"DarthSidious" wrote:

claro, dicho evento no tiene los argumentos que me permiten ver que tecla se
preciono, asique lo cambie a KeyPressEventArgs en lugar de EventArgs... la
pregunta seria, como defino un nuevo EventHandler que tenga los parametros
que necesito? o sea, como hago en C# para agregar un Evento como KeyPress que
no esta por default ????

gracias!!

"Alberto Poblacion" wrote:

> "DarthSidious" wrote in message
> news:
> > this.textBox1.KeyPress += new System.EventHandler(this.textBox1_KeyPress);
> >
> > me tira este error:
> >
> > Error 1 No overload for 'textBox1_KeyPress' matches delegate
>
> Esencialmente el mensaje de error te está diciendo que textBox1_KeyPress
> no tiene los argumentos correctos. Tiene que coincidir con la definición
> esperada por System.EventHandler (el delegado), que en este caso es asi:
>
> void textBox1_KeyPress(object sender, EventArgs e)
>
> Si le has puesto otros argumentos distintos a la rutina, te da ese error.
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida