1

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 を使用しています。これは非常に単純なはずですが、私の人生ではそれを理解することはできません

これが、tabControl イベントではなく、tabItem イベントを介して実行できるとよいでしょう。

更新: 重要な場合は 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>
4

1 に答える 1

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 サブルーチンを使用して、タブの変更を宣言しました。TabControl1 が変更されたことを明確にしない場合は、変更を行うために TabPage をクリックする必要があります。

于 2013-06-24T15:36:14.087 に答える