我正在编写一个 .NET (4.0) 应用程序,用户将在其中输入多个TextBox
es 中的 2 位数字,我希望光标在输入第二个字符后自动前进到“下一个”文本框。实现这一点的最佳方法是什么?
编辑:我有这个PreviewKeyDown
处理程序:
private void ODTextBox_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (allowedKeys.Contains(e.Key))
{
KeyConverter kc = new KeyConverter();
string letter = kc.ConvertToString(e.Key);
TextBox tb = (TextBox)sender;
if (tb.Text.Length > 1 && tb.SelectedText.Length == 0)
{
this.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}
}
}
但是,该MoveFocus
方法总是会导致焦点移动到我的 10 个文本框中的第一个。我有TabIndex
并KeyboardNavigation.TabIndex
为每个设置TextBox
,但这无济于事。