una - evento keypress c# tecla enter
El evento KeyDown no funciona para las teclas de flecha, Home, End, PageUp, PageDown y otras teclas similares en Silverlight (2)
Quiero anular el comportamiento de selección de elementos ListBox.
Podemos atravesar los elementos de ListBox usando las flechas hacia arriba y hacia abajo, pero quiero recorrer la lista con las teclas de flecha izquierda y derecha.
Mientras trato de agregar el evento de reducción de teclado para ListBox, muestra casi todas las pulsaciones de teclas, excepto las teclas de flecha, inicio, final y teclas similares.
Tengo el siguiente código:
private void listArtist_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key.ToString() == "Enter")
{
// Go to some page
}
else
{
MessageBox.Show(e.Key.ToString());
}
}
No tengo idea de esto. Por favor ayuda.
Gracias, Subhen
¿Te importa si me da la idea de manejar el evento de teclado en su lugar?
Lo que debe hacer es crear una subclase ListBox y anular la función OnKeyDown. Tal vez algo como esto:
class MyListBox : ListBox
{
protected override void OnKeyDown(KeyEventArgs e)
{
switch (e.Key)
{
case Key.Left:
// ....
e.Handled = true;
break;
case Key.Right:
// ....
e.Handled = true;
break;
}
if (!e.Handled)
base.OnKeyDown(e);
}
}