TabControl и установите фокус на текстовое поле в WPF - PullRequest
2 голосов
/ 31 июля 2009

У меня есть tabcontrol в WPF Когда я переключаюсь на определенный tabItem, я хочу установить фокус на определенный текстовый блок

Я добавил код textBox_n.Focus (); в обработчике события selectionChanged, но это не сработало.

Я добавил код в обработчик событий GotFocus tabItem, но достаточно забавно вызывая textBox_n.Focus (), снова вызывал GotFocus tabItem.

так где и в каком месте его лучше всего ставить.

1 Ответ

0 голосов
/ 13 августа 2009

Если вы используете сетку для упорядочивания текстовых полей, вы можете поместить сетку, которую вы хотите сфокусировать, в качестве первого дочернего элемента сетки, и указать ее строку и столбец как второй или третий, вот пример.

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

Не очень элегантно, конечно, но это делает работу быстро. Также код не требуется.

...