TabControl并将焦点设置在WPF中的文本框中

时间:2009-07-31 19:08:57

标签: wpf focus tabcontrol

我在WPF中有一个tabcontrol 当我切换到特定的tabItem时,我想将焦点设置在特定的textBox

我添加了textBox_n.Focus()的代码;在selectionChanged的事件处理程序中,但它不起作用。

我在tabItem的GotFocus的事件处理程序中添加了代码,但很有趣 调用textBox_n.Focus(),再次调用tabItem的GotFocus。

所以放在哪里和最好的地方。

1 个答案:

答案 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>

当然不是很优雅,但它可以快速完成工作。也不需要代码隐藏。