我正在编写一个.NET(4.0)应用程序,用户将在其中输入例如多个TextBox
es中的2个数字,我希望光标在第二个字符输入一个后自动前进到“下一个”TextBox。实现这个的最佳方法是什么?
编辑:我有这个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个TextBox中的第一个。我为TabIndex
设置了KeyboardNavigation.TabIndex
和TextBox
,但这没有帮助。
答案 0 :(得分:1)
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (...) //Your logic here
this.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}