重置或 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 获得焦点。这可能吗?
我试过:
- 禁用和启用按钮的 TabStop(在 ClickEvent 中)但没有结果。
如果我使用在 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();
}
}
}
我的 WpfWindow 上有一个 TextBox (firstItem) 和一个 Button (anotherItem),例如索引为1 和 23(为了简单起见)。
因此,当我单击按钮(TabIndex="23")时,我希望它重置当前的 TabIndex,以便 TextBox 获得焦点。这可能吗?
我试过:
- 禁用和启用按钮的 TabStop(在 ClickEvent 中)但没有结果。
如果我使用在 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();
}
}
}