W aplikacji WPF mam okno z wieloma polami. Gdy użytkownik użyje klawisza TAB po wypełnieniu każdego pola, system Windows zrozumie, że przechodzi on do następnego. To jest dość znane zachowanie.Jak symulować naciśnięcie klawisza Tab po naciśnięciu przycisku Powrót w aplikacji WPF?
Teraz chcę, aby symulował klawisz TAB, podczas gdy w rzeczywistości POWRÓT zostaje trafiony. Więc w moim WPF XAML dodałem sugerować KeyDown="userPressEnter"
I w kodzie za nim:
private void userPressEnter(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
e.Key = Key.Tab // THIS IS NOT WORKING
}
}
Teraz oczywiście to nie działa. Ale nie wiem, jak to działa?
EDIT 1 ==> znalazł rozwiązanie
znalazłam coś, co pomogło mi out =)
private void userPressEnter(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
TraversalRequest request = new TraversalRequest(FocusNavigationDirection.Next);
MoveFocus(request);
}
}
ten sposób ostrości porusza się na następny może ona znajdź :)
Przez symulację zakładki chcesz przesunąć kursor do następnego pola w oknie? – Tudor
Tak, przenieś go do następnego programu obsługi, aby mogło to być pole lub przycisk. Symuluj więc takie samo zachowanie, jakby użytkownik mógł nacisnąć TAB. Dlatego po prostu próbuję nadać systemowi wejście TAB, gdy w rzeczywistości naciśnięto RETURN. – Dante1986
Problem z rozwiązaniem: musisz dodać go do każdego pojedynczego elementu sterującego, w przeciwnym razie funkcja MoveFocus nie wybierze poprawnego następnego pola. – Sam