Problema con eventos
Publicado por euss (3 intervenciones) el 08/11/2006 20:52:42
Hola a todos.
Tengo un control que consiste en un conjunto de botones ( como un menú ) dentro de este control tengo definidos los siguiente eventos:
private void b_Leave(object sender, EventArgs e)
{
if(right) // Esta es una bandera que modifico desde el metodo sobreescrito ProcessCmdKey
{
cursorAlaDerecha();
}
}
private void b_KeyUp(object sender, KeyEventArgs e)
{
if(eresElUnicoBoton && e.KeyData == Keys.Right)
{
cursorAlaDerecha();
}
}
Lo genero en estos dos eventos porque si solo hay un boton en el control nunca se lanza el evento Leave. La idea de cursorAlaDerecha() es que buscara el siguiente control para darle el foco algo como:
public void cursorAlaDerecha(object objetoInicial)
{
if(objetoInicial.Equals(menuPrincipal))
{
if(this.mSpanel.CanFocus)
this.mSpanel.Focus();
}
}
El problema es que mSpanel es un control que implementa los eventos b_Leave y b_KeyUp mas o menos con la misma logica que el control anterior y si llegue a mSPanel desde el evento b_Leave del control anterior entra al b_KeyUp de mSpanel, es decir se mueve dos veces. Agradezco que me indiquen que estoy haciendo mal.
Saludos.
Tengo un control que consiste en un conjunto de botones ( como un menú ) dentro de este control tengo definidos los siguiente eventos:
private void b_Leave(object sender, EventArgs e)
{
if(right) // Esta es una bandera que modifico desde el metodo sobreescrito ProcessCmdKey
{
cursorAlaDerecha();
}
}
private void b_KeyUp(object sender, KeyEventArgs e)
{
if(eresElUnicoBoton && e.KeyData == Keys.Right)
{
cursorAlaDerecha();
}
}
Lo genero en estos dos eventos porque si solo hay un boton en el control nunca se lanza el evento Leave. La idea de cursorAlaDerecha() es que buscara el siguiente control para darle el foco algo como:
public void cursorAlaDerecha(object objetoInicial)
{
if(objetoInicial.Equals(menuPrincipal))
{
if(this.mSpanel.CanFocus)
this.mSpanel.Focus();
}
}
El problema es que mSpanel es un control que implementa los eventos b_Leave y b_KeyUp mas o menos con la misma logica que el control anterior y si llegue a mSPanel desde el evento b_Leave del control anterior entra al b_KeyUp de mSpanel, es decir se mueve dos veces. Agradezco que me indiquen que estoy haciendo mal.
Saludos.
Valora esta pregunta


0