Перейти к следующему текстовому поле при нажатии клавиши "Enter" вместо отправки (Windows Phone)
2 ответов
вы можете использовать FocusManager для программного перемещения фокуса.
используйте событие KeyDown контейнера TextBox, скажем, StackPanel, чтобы прослушать событие клавиатуры. Таким образом, ваш код будет работать следующим образом
private void stackPanel_KeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.Key == Windows.System.VirtualKey.Enter)
{
if (FocusManager.GetFocusedElement() == inputTextBox) // Change the inputTextBox to your TextBox name
{
FocusManager.TryMoveFocus(FocusNavigationDirection.Next);
FocusManager.TryMoveFocus(FocusNavigationDirection.Next);
}
else
{
FocusManager.TryMoveFocus(FocusNavigationDirection.Next);
}
// Make sure to set the Handled to true, otherwise the RoutedEvent might fire twice
e.Handled = true;
}
}
дополнительные сведения о FocusManager см. В разделе https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.input.focusmanager.trymovefocus
дополнительные сведения о KeyDown см. В разделе https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.uielement.keydown
у вас есть что-то вроде yourTextBoxName.Focus()
..? также используйте KeyDownEvent для New Password
textbox и проверьте следующее
if (e.Key == Key.Enter || e.PlatformKeyCode == 0x0A)
{
confirmPassword.Focus();//change confirmPassword to your controls actual name
}