2

WPF にタブ コントロールがあります。特定の tabItem に切り替えたときに、特定の textBox にフォーカスを設定したい

textBox_n.Focus(); のコードを追加しました。selectionChanged のイベント ハンドラーで実行しましたが、機能しませんでした。

tabItem の GotFocus のイベント ハンドラーにコードを追加しましたが、textBox_n.Focus() を呼び出すのは面白いことに、tabItem の GotFocus を再度呼び出していました。

どこに、どのような場所に置くのが最適か。

4

1 に答える 1

0

グリッドを使用してテキストボックスを配置している場合は、フォーカスするグリッドをグリッドの最初の子として配置し、その行と列を2番目または3番目に指定できます。例を次に示します。

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

もちろんあまりエレガントではありませんが、仕事を早く終わらせることができます。また、コードビハインドは必要ありません。

于 2009-08-13T19:47:33.877 に答える