切换到 TabItem 时获得焦点
Focus when change to TabItem
我有 window,TabControl
和四个 TabItem
。 And I need to change focus to right textBox
when tab is selected.这里有一些正确的方法吗?
我尝试使用 TabControl_SelectionChanged
事件,但它似乎不起作用。
private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (((TabItem)((TabControl)sender).SelectedItem).Name == "tab2")
{
UpdateLayout();
textBox2EAN.Focus();
}
e.Handled = true;
}
但是如果我点击 tab2,焦点就会出现在 DataGrids
的复选框列上。
选项卡项:...
<TabItem Name="tab2" Header="2" Width="50">
<Grid>
<DataGrid Name="dataGrid" Margin="1" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseDoubleClick="dataGrid_MouseDoubleClick"
ItemsSource="{Binding RadkyDokladu.radky}" CanUserSortColumns="False" PreviewKeyDown="dataGrid_PreviewKeyDown"
AutoGenerateColumns="False" IsReadOnly="True" FontSize="12" SelectionMode="Single" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="" Binding="{Binding ZASKRTNUTO}" Width="auto" />
<DataGridTextColumn Header="Náz" Binding="{Binding Artikl_NAME}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
<TextBox Name="textBox2EAN" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" Margin="1"
VerticalContentAlignment="Center" />
</Grid>
</Tabitem>
您可以将其移动到 XAML 并让 TabItem 内的控件在准备就绪时移动焦点:
<TabItem Name="tab2" Header="2" Width="50">
<Grid FocusManager.FocusedElement="{Binding ElementName=textBox2EAN}">
<DataGrid />
<TextBox Name="textBox2EAN" />
</Grid>
</TabItem>
我有 window,TabControl
和四个 TabItem
。 And I need to change focus to right textBox
when tab is selected.这里有一些正确的方法吗?
我尝试使用 TabControl_SelectionChanged
事件,但它似乎不起作用。
private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (((TabItem)((TabControl)sender).SelectedItem).Name == "tab2")
{
UpdateLayout();
textBox2EAN.Focus();
}
e.Handled = true;
}
但是如果我点击 tab2,焦点就会出现在 DataGrids
的复选框列上。
选项卡项:...
<TabItem Name="tab2" Header="2" Width="50">
<Grid>
<DataGrid Name="dataGrid" Margin="1" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseDoubleClick="dataGrid_MouseDoubleClick"
ItemsSource="{Binding RadkyDokladu.radky}" CanUserSortColumns="False" PreviewKeyDown="dataGrid_PreviewKeyDown"
AutoGenerateColumns="False" IsReadOnly="True" FontSize="12" SelectionMode="Single" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="" Binding="{Binding ZASKRTNUTO}" Width="auto" />
<DataGridTextColumn Header="Náz" Binding="{Binding Artikl_NAME}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
<TextBox Name="textBox2EAN" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" Margin="1"
VerticalContentAlignment="Center" />
</Grid>
</Tabitem>
您可以将其移动到 XAML 并让 TabItem 内的控件在准备就绪时移动焦点:
<TabItem Name="tab2" Header="2" Width="50">
<Grid FocusManager.FocusedElement="{Binding ElementName=textBox2EAN}">
<DataGrid />
<TextBox Name="textBox2EAN" />
</Grid>
</TabItem>