重置或禁用/启用curent使用TabIndex -runtime-再次从1开始

时间:2016-10-10 11:42:01

标签: c# wpf tabindex tabstop

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

所以,当我单击Button(具有TabIndex =" 23")时,我希望它重置curent TabIndex,以便TextBox成为焦点。这甚至可能吗?

我试过了:

  • 禁用和禁用Button的TabStop(在ClickEvent中),但没有结果。
如果我使用在ClickEvent之后执行的函数,那么它会有帮助吗?

1 个答案:

答案 0 :(得分:1)

您有两个选择:

  • 将TextBox聚焦在CS文件中(非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;

  • 加成:

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