Control.Focus(FocusState) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コントロールにフォーカスを設定しようとします。
public:
virtual bool Focus(FocusState value) = Focus;
bool Focus(FocusState const& value);
public bool Focus(FocusState value);
function focus(value)
Public Function Focus (value As FocusState) As Boolean
パラメーター
- value
- FocusState
列挙体の値として、フォーカスがどのように設定されたかを指定します。
戻り値
bool
フォーカス がコントロールに設定されている場合、またはフォーカスがコントロールに既に設定されている場合は true。 コントロールがフォーカス可能でない場合は false。
例
この例では、[編集] ボタンをクリックすると、TextBox にフォーカスが設定されるため、プログラムによるフォーカスの状態が Focus メソッドに渡されます。
<StackPanel>
<Button Content="Edit" Click="Button_Click"/>
<TextBox x:Name="EditorTextBox" IsReadOnly="True"/>
</StackPanel>
private void Button_Click(object sender, RoutedEventArgs e)
{
EditorTextBox.IsReadOnly = false;
EditorTextBox.Focus(FocusState.Programmatic);
}
注釈
IsTabStop を にfalse
設定して でControl
このメソッドを呼び出すと、呼び出しは無視され、フォーカスは移動せず、呼び出しは を返false
します。
パラメーターとして を指定してこのメソッド Unfocused を呼び出すことで、コントロールからフォーカスを削除することはできません。 この値は許可されず、例外が発生します。 コントロールからフォーカスを削除するには、フォーカスを別のコントロールに設定します。
通常、 FocusState.Programmatic をパラメーターとして渡して、Focus メソッドの意図的な呼び出しによってコントロールがフォーカスを取得したことを示します。 たとえば、[編集] ボタンをクリックすると 、TextBox にフォーカスが設定される場合は、 プログラムによる フォーカス状態を使用します。
ポインター操作の直接の結果としてフォーカスを設定する場合は、 FocusState.Pointer を渡します。 タブ シーケンスやキーを押すなどのキーボード操作の結果としてフォーカスを設定する場合は、 FocusState.Keyboard をパラメーターとして渡します。 たとえば、 ItemsControl を実装し、ユーザーがコントロール内の項目間でフォーカスを移動できるようにキーの押しを処理する場合は、キー押しハンドラーで Focus を呼び出すときに キーボード フォーカス状態を使用します。
以前のバージョンのメモ
注意
Windows 8では、FocusState が Programmatic の場合、以前の入力メソッドがポインターであった場合でも、キーボード フォーカス ビジュアルが表示されます。 Windows 8.1では、Focus (FocusState.Programmatic) を呼び出すと、以前の FocusState (ポインターまたはキーボード) が保持され、正しいフォーカス ビジュアルが表示されます。 つまり、Focus (FocusState.Programmatic) を呼び出した後に FocusState プロパティの値をチェックすると、FocusState プロパティの値は Pointer または Keyboard になります。
Windows 8用にコンパイルされたが、Windows 8.1で実行されるアプリでは、Windows 8の動作は保持されます。 FocusState プロパティの値は Programmatic で、キーボード フォーカス ビジュアルが表示されます。