0

我正在编写一个 .NET (4.0) 应用程序,用户将在其中输入多个TextBoxes 中的 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 个文本框中的第一个。我有TabIndexKeyboardNavigation.TabIndex为每个设置TextBox,但这无济于事。

4

1 回答 1

1
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
   if (...) //Your logic here   
      this.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}
于 2013-05-20T20:51:40.710 回答