n个字符后,将光标移动到“下一个”TextBox

时间:2013-05-20 20:37:08

标签: .net wpf textbox

我正在编写一个.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.TabIndexTextBox,但这没有帮助。

1 个答案:

答案 0 :(得分:1)

private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
   if (...) //Your logic here   
      this.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}