重置或 disable/enable 当前使用 TabIndex -runtime- 再次从 1 开始

reset or disable/enable curent used TabIndex -runtime- to start with 1 again

我的 WpfWindow 上有一个 TextBox (firstItem) 和一个 Button (anotherItem),例如索引为1 和 23(为了简单起见)。

因此,当我单击按钮(TabIndex="23")时,我希望它重置当前的 TabIndex,以便 TextBox 获得焦点。这可能吗?

我试过:

如果我使用在 ClickEvent 之后执行的函数,会有帮助吗?

您有 2 个选择:

  • 在 CS 文件中聚焦 TextBox(非 MVVM 方式):

XAML 文件:

<TextBox Name="TextBoxFirst"></TextBox> <Button Click="Button_Click"></Button>

CS 文件:

private void Button_Click(object sender, RoutedEventArgs e) { TextBoxFirst.Focus(); }

  • 将 TextBox 置于 XAML 中(MVVM 方式):

XAML 文件:

<TextBox Name="TextBoxFirst" FocusManager.IsFocusScope="{Binding FocusOnFirstTextBox}"></TextBox>

CS 文件:

FocusOnFirstTextBox = true;

  • 奖金:

您可以在不知道名称的情况下访问文本框。 Visual visual=YourGridName; for (int i = 0; i < VisualTreeHelper.GetChildrenCount(visual); i++) { Visual childVisual = (Visual) VisualTreeHelper.GetChild(visual, i); if (childVisual is TextBox) { TextBox tempTextBox = childVisual as TextBox; if(tempTextBox.IsVisible) { tempTextBox.Focus(); } } }