我在WPF中有一个tabcontrol 当我切换到特定的tabItem时,我想将焦点设置在特定的textBox
上我添加了textBox_n.Focus()的代码;在selectionChanged的事件处理程序中,但它不起作用。
我在tabItem的GotFocus的事件处理程序中添加了代码,但很有趣 调用textBox_n.Focus(),再次调用tabItem的GotFocus。
所以放在哪里和最好的地方。
答案 0 :(得分:0)
如果您使用网格来排列文本框,您可以将要聚焦的网格作为网格的第一个子项,并将其行和列指定为第二个或第三个,这是一个示例。 / p>
<TabControl>
<TabItem Header="Tab 1">
</TabItem>
<TabItem Header="Tab 2">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBox Grid.Row="1" Margin="5">textBox2</TextBox> <!-- This textbox is the first child of the grid, so it gets focused -->
<TextBox Grid.Row="0" Margin="5">textBox1</TextBox> <!-- This textbox is catually on top of textBox2 -->
</Grid>
</TabItem>
</TabControl>
当然不是很优雅,但它可以快速完成工作。也不需要代码隐藏。