En una aplicación WPF, tengo una ventana que tiene muchos campos. Cuando el usuario usa la tecla TAB después de llenar cada campo, Windows entiende que pasa al siguiente. Este es un comportamiento bastante conocido.¿Cómo simulo una tecla Tabulador cuando presiono Retorno en una aplicación WPF?
Ahora lo que quiero hacer es hacer que simule la tecla TAB, cuando en realidad se produce el RETORNO. Así que en mi XAML de WPF que añade implica KeyDown="userPressEnter"
Y en el código detrás de él:
private void userPressEnter(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
e.Key = Key.Tab // THIS IS NOT WORKING
}
}
Ahora, obviamente esto no está funcionando. Pero lo que no sé es cómo hago que esto funcione.
EDIT 1 ==> encontrado una solución
encontré algo que me ayudó a salir =)
private void userPressEnter(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
TraversalRequest request = new TraversalRequest(FocusNavigationDirection.Next);
MoveFocus(request);
}
}
De esta manera el foco se desplaza en la siguiente se puede encontrar :)
Al simular la tabulación, ¿quiere mover el cursor al siguiente campo de la ventana? – Tudor
Sí, muévelo al siguiente controlador, de modo que pueda ser un campo o un botón. Así que simule el mismo comportamiento que si el usuario hubiera golpeado TAB. Es por eso que simplemente trato de darle al sistema la entrada TAB, cuando en realidad se presiona RETORNO. – Dante1986
Problema de su solución: debe agregarlo a cada control, de lo contrario, MoveFocus no seleccionará el siguiente campo correcto. – Sam