WPF新手,意识到他们已经有很多问题,但没有一个有效。我希望选项卡中的文本框能够在选中标签时获得焦点。
目前有
Private Sub TabControl1_Event(sender As Object, e As System.Windows.Controls.SelectionChangedEventArgs)
_Handles TabControl1.SelectionChanged
UpdateLayout() 'tried me.show() as well
If TabControl1.SelectedIndex = 0 Then
i = i + 1
Title = "selected" + Convert.ToString(i)
UserBox.Focus()
End If
End Sub
i增量和标题更改只是为了查看是否正在输入if循环,显然它是,但文本框(应用程序中唯一的其他控件)仅在程序首次启动时获得焦点。
正如我所说,我在这里看到了很多其他问题类似,但要么它们不完全相同,要么就是不起作用。我在WPF应用程序中使用vb.net。看起来这应该是非常简单但不能让我的生活弄清楚
如果可以通过tabItem事件而不是tabControl事件来完成,那将是很好的。
更新: IDK如果重要但我看到其他人发帖,所以这是我的XAML
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Burn In" Height="350" Width="525">
<TabControl Height="Auto" Name="TabControl1" Width="Auto">
<TabItem Header="User" Name="UserTab">
<Grid>
<TextBox Height="25" HorizontalAlignment="Center" Margin="0" Name="UserBox" VerticalAlignment="Center" Width="250" AcceptsReturn="True" />
</Grid>
</TabItem>
<TabItem Header="DUT" Name="DutTab">
<Grid />
</TabItem>
<TabItem Header="Rack" Name="RackTab">
<Grid />
</TabItem>
<TabItem Header="Programs" Name="ProgTab">
<Grid />
</TabItem>
</TabControl>
</Window>
答案 0 :(得分:2)
我在计算机上测试了这段代码并且工作正常。
Private Sub TabControl1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
If TabControl1.SelectedIndex = 1 Then
TabControl1.Update()
TextBox1.Focus()
End If
End Sub
我使用TabControl1_SelectedIndexChanged子例程声明了Tab的更改。如果您没有说明TabControl1已更改,则需要在TabPage中单击以进行更改。