2

我有一个 TabControl,我想将焦点设置在文本框的第一个选项卡上。

我尝试在代码中使用:

 this.tabItemMerkmalAllgemein.Focus();
 this.textBoxMerkmalBezeichnung.Focus();

如果选择了第二个选项卡,则将在此之后选择第一个选项卡,但不会显示文本框上的光标,因此文本框焦点不起作用。

XAML 选项卡控件:

<TabControl Width="359" Grid.Column="1" Style="{StaticResource EditDialogTabControl}" Name="tabControlMerkmalDetails" Margin="4,0,0,0">
                        <TabItem Header="Allgemein" Name="tabItemMerkmalAllgemein" GotFocus="tabItemMerkmalAllgemein_GotFocus">

…
 <Label      Grid.Row="0" Style="{StaticResource EditDialogLabel}" Content="Bezeichnung"/>
               <TextBox x:Name="textBoxMerkmalBezeichnung"    Grid.Row="0" Grid.Column="1" 
                  Style="{StaticResource EditDialogTextBox}" MaxWidth="300"
Text="{Binding Path=bezeichnung, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
TextChanged="textBoxMerkmalBezeichnung_TextChanged"      LostFocus="textBoxMerkmalBezeichnung_LostFocus" />
…
                        </TabItem>
                        <TabItem  Name="tabItemKostenpflichtig">
…
                        </TabItem>
                    </TabControl>
                </Grid>
            </TabItem>
4

1 回答 1

0

您需要将您的声明更改TabItem为:

<TabItem FocusManager.FocusedElement="{Binding ElementName=textBoxMerkmalBezeichnung}" 
Header="Allgemein" Name="tabItemMerkmalAllgemein" GotFocus="tabItemMerkmalAllgemein_GotFocus">

重要的部分是FocusManager.FocusedElement附加属性的添加。您可以从MSDN 上的FocusManager.FocusedElement 附加属性页面了解更多信息。

于 2013-08-14T11:29:42.490 回答