次の方法で共有


Keyboard.GotKeyboardFocus 添付イベント

定義

要素がキーボード フォーカスを受け取ったときに発生します。

see AddGotKeyboardFocusHandler, and RemoveGotKeyboardFocusHandler
see AddGotKeyboardFocusHandler, and RemoveGotKeyboardFocusHandler
see AddGotKeyboardFocusHandler, and RemoveGotKeyboardFocusHandler

次の例では、 をTextBox作成し、 イベントと イベントのイベント ハンドラーをLostKeyboardFocusGotKeyboardFocusアタッチします。 TextBoxがキーボード フォーカスを取得すると、背景色が変更され、 TextBox のテキストがクリアされます。 がキーボード フォーカスを TextBlock 失うと、背景色が変更され、サンプルで使用される変数をリセットする メソッドが呼び出されます。

<Border BorderBrush="Black" BorderThickness="1"
        Width="200" Height="100" Margin="5">
  <StackPanel>
    <Label HorizontalAlignment="Center" Content="Type Text In This TextBox" />
    <TextBox Width="175"
             Height="50" 
             Margin="5"
             TextWrapping="Wrap"
             HorizontalAlignment="Center"
             VerticalScrollBarVisibility="Auto"
             GotKeyboardFocus="TextBoxGotKeyboardFocus"
             LostKeyboardFocus="TextBoxLostKeyboardFocus"
             KeyDown="SourceTextKeyDown"/>
  </StackPanel>
</Border>
private void TextBoxGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
    TextBox source = e.Source as TextBox;

    if (source != null)
    {
        // Change the TextBox color when it obtains focus.
        source.Background = Brushes.LightBlue;

        // Clear the TextBox.
        source.Clear();
    }
}
Private Sub TextBoxGotKeyboardFocus(ByVal sender As Object, ByVal e As KeyboardFocusChangedEventArgs)
    Dim source As TextBox = TryCast(e.Source, TextBox)

    If source IsNot Nothing Then
        ' Change the TextBox color when it obtains focus.
        source.Background = Brushes.LightBlue

        ' Clear the TextBox.
        source.Clear()
    End If
End Sub
private void TextBoxLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
    TextBox source = e.Source as TextBox;

    if (source != null)
    {
        // Change the TextBox color when it loses focus.
        source.Background = Brushes.White;

        // Set the  hit counter back to zero and updates the display.
        this.ResetCounter();
    }
}
Private Sub TextBoxLostKeyboardFocus(ByVal sender As Object, ByVal e As KeyboardFocusChangedEventArgs)
    Dim source As TextBox = TryCast(e.Source, TextBox)

    If source IsNot Nothing Then
        ' Change the TextBox color when it loses focus.
        source.Background = Brushes.White

        ' Set the  hit counter back to zero and updates the display.
        Me.ResetCounter()
    End If
End Sub

注釈

これは添付イベントです。 WPF は、ルーティング イベントとして添付イベントを実装します。 アタッチされたイベントは、基本的には、そのイベントを定義しないオブジェクトで処理できるイベントを参照するための XAML 言語の概念であり、WPF はイベントがルートを通過できるようにすることで拡張されます。 アタッチされたイベントには、コード内の直接処理構文がありません。コード内のルーティング イベントのハンドラーをアタッチするには、指定された Add*Handler メソッドを使用します。 詳細については、「 添付イベントの概要」を参照してください。

キーボード フォーカスは、キーボード入力を受け取っているオブジェクトを指します。 キーボード フォーカスを持つ 要素が にtrue設定されていますIsKeyboardFocused。 デスクトップ全体にキーボード フォーカスがある要素は 1 つだけです。 論理フォーカスとは、フォーカスがあるフォーカススコープ内のオブジェクトを指します。 フォーカス、キーボード フォーカス、論理フォーカスの詳細については、「 入力の概要 」と「 フォーカスの概要」を参照してください。

PreviewGotKeyboardFocusイベントまたはイベントがPreviewLostKeyboardFocus処理されると、キーボード フォーカスは変更されます。

ルーティングされたイベント情報

識別子フィールド GotKeyboardFocusEvent
ルーティング戦略 バブル
代理人 KeyboardFocusChangedEventHandler

適用対象