1

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

因此,当我单击按钮(具有 TabIndex="23")时,我想要它重置当前的 TabIndex 以便 TextBox 聚焦。这甚至可能吗?

我试过了:

  • 禁用和启用按钮的 TabStop(在 ClickEvent 中)但没有结果。

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

4

1 回答 1

1

您有 2 个选项:

  • 将文本框聚焦在 CS 文件中(非 MVVM 方式):

XAML 文件:

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

CS文件:

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

  • 在 XAML 中聚焦 TextBox(MVVM 方式):

XAML 文件:

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

CS文件:

FocusOnFirstTextBox = true;

  • 奖金:

您可以在不知道其名称的情况下访问 TextBox。 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(); } } }

于 2016-10-11T12:07:15.347 回答