Asignar un evento solo una vez a un control

02/04/2004 - 16:51 por Luis Ruiz | Informe spam
Hola, tengo una clase que recibe un texbox y en el
contructor le agrega un un evento keyup de la siguiente
manera:
this.m_txtCodigo.KeyUp += new
System.Windows.Forms.KeyEventHandler(this.busca);
El problema es que si hago varias instancia de mi clase
con el mismo texbos como parametro se le agregara igual
numero de eventos key up al textbox, lo que causa que se
ejecune el metodo musca varias veces :(
Cómo puedo asegurarme que solo se le asigne una vez el
evento al textbox, no se preguntando si ya lo tiene o
eliminado todos antes, no se?
Gracias!

He probafo esto:
if ( this.m_txtCodigo.KeyUp != null)
this.m_txtCodigo.KeyUp += new
System.Windows.Forms.KeyEventHandler(this.busca);

Pero me da el siguiente error almomento de compilar:
El evento 'System.Windows.Forms.Control.KeyUp' sólo puede
aparecer a la izquierda de += o -
VS2002
 

Leer las respuestas

#1 José Miguel Torres
02/04/2004 - 17:34 | Informe spam
Hola:

Prueba creando una variable estática que contenga el estado del evento,
es decir si se ha asignado o no.

SAludos

José Miguel Torres
jtorres_diaz(ARROBA)terra.es

"Luis Ruiz" escribió en el mensaje
news:12dfe01c418c1$f140d850$
Hola, tengo una clase que recibe un texbox y en el
contructor le agrega un un evento keyup de la siguiente
manera:
this.m_txtCodigo.KeyUp += new
System.Windows.Forms.KeyEventHandler(this.busca);
El problema es que si hago varias instancia de mi clase
con el mismo texbos como parametro se le agregara igual
numero de eventos key up al textbox, lo que causa que se
ejecune el metodo musca varias veces :(
Cómo puedo asegurarme que solo se le asigne una vez el
evento al textbox, no se preguntando si ya lo tiene o
eliminado todos antes, no se?
Gracias!

He probafo esto:
if ( this.m_txtCodigo.KeyUp != null)
this.m_txtCodigo.KeyUp += new
System.Windows.Forms.KeyEventHandler(this.busca);

Pero me da el siguiente error almomento de compilar:
El evento 'System.Windows.Forms.Control.KeyUp' sólo puede
aparecer a la izquierda de += o -
VS2002

Preguntas similares