Herencia y manejadores de eventos

11/10/2009 - 21:13 por Alberto | Informe spam
Tengo una clase que deriva de Label que denomino Nodo. De esta clase deriva
a su vez otra denominada Elemento. En esta última, escribo los manejadores
de evento para MouseMove, MouseDown, MouseUp y DoubleClick.

Observo que nunca se ejecutan los métodos que manejan esos eventos. Lo
curioso es que pongo un punto de ruptura en cualquiera de esos códigos y no
llega nunca a ellos. En cambio, si escribo el código en la clase base, sí
que se ejecutan.

¿Tengo que tener en cuenta alguna consideración a la hora de crear una
jerarquía de objetos para poder manejar eventos?
Gracias
 

Leer las respuestas

#1 Alberto
11/10/2009 - 21:30 | Informe spam
Os adjunto un ejemplo que acabo de construir y donde se puede entender mejor
lo que me ocurre:

public class A: Label
{
}



public class B: A
{
private void InitializeComponent()
{
this.SuspendLayout();
//
// B
//
this.DoubleClick += new System.EventHandler(this.B_DoubleClick);
this.ResumeLayout(false);

}

private void B_DoubleClick(object sender, EventArgs e)
{
this.Text += this.Text;
}
}


Como se puede ver, la clase B responde al evento doble clic. Lo curioso es
que sitúo una instancia de B en un formulario y no se ejecuta el código.
Puse un punto de ruptura y no llega a él.
Gracias.


"Alberto" escribió en el mensaje de noticias
news:
Tengo una clase que deriva de Label que denomino Nodo. De esta clase
deriva a su vez otra denominada Elemento. En esta última, escribo los
manejadores de evento para MouseMove, MouseDown, MouseUp y DoubleClick.

Observo que nunca se ejecutan los métodos que manejan esos eventos. Lo
curioso es que pongo un punto de ruptura en cualquiera de esos códigos y
no llega nunca a ellos. En cambio, si escribo el código en la clase base,
sí que se ejecutan.

¿Tengo que tener en cuenta alguna consideración a la hora de crear una
jerarquía de objetos para poder manejar eventos?
Gracias

Preguntas similares