MESCIUS InputMan for WPF 3.0J
キーボード操作

このトピックでは、日付コントロールのキーボード操作について解説します。

独自の機能と注意事項

日付コントロールには、次の3つの独自機能があります。

  1. 自動フォーカス移動
    ExitOnLastChar プロパティを True に設定すると、入力された文字列が、書式設定により定義されたフィールドすべてに満たされると、自動的に次のコントロールへフォーカスを移動できます。

  2. 矢印キーによるフォーカス移動
    ExitOnLeftRightKey プロパティを ExitOnLeftRightKey.None 以外の値に設定すると、キャレットがコントロール内のテキストの最初または最後の文字上にある状態で[→]、[←]、または[Ctrl]+[→]、[Ctrl]+[←]の各キーを押したときに、フォーカスを前後のコントロールに移動することができます。

  3. キー入力によるフォーカス移動の検出
    [→]、[←]、[Ctrl]+[→]、[Ctrl]+[←]、[Tab]、[Shift]+[Tab]の各キーを使用して、フォーカスを前後のコントロールに移動したときには、LostFocus イベントの前に KeyExit イベントが発生します。

ショートカットコマンドを使ってコントロールの機能を特定のキーに割り当てた場合、それらのキーに割り当てられていたデフォルトの機能は動作しなくなります。

また、TabAction プロパティの設定内容によって、キーボードを操作したときの動作が異なります。詳しくは、TabAction プロパティのリファレンスを参照してください。

WPF ブラウザアプリケーションの場合、ブラウザによってはショートカットキーとして特定のキーに対してブラウザ独自の機能が割り当てられていることがあります。この場合、コントロールのショートカットコマンドよりもブラウザのショートカットキーの動作が優先されます。

リテラル文字列と入力フィールド

日付コントロールの表示領域は、通常、リテラル文字列と入力フィールドの2種類に分かれています。

日付コントロールの表示領域

日付コントロールのナビゲーションや選択などの操作は、リテラル文字列と入力フィールドの位置関係による影響を受けます。これらの操作に関する説明を以下にまとめます。

ナビゲーション
操作 説明
[←] 1つ前の非リテラル文字または行の先頭にキャレットを移動します。選択された部分がある場合は、選択が解除されてその部分の左端にキャレットが置かれます。
[→] 次の非リテラル文字または行の末尾にキャレットを移動します。選択された部分がある場合は、選択が解除されてその部分の右端にキャレットが置かれます。
[↑] SpinIncrement プロパティあるいは SpinIncrementValue プロパティで設定した値を単位として、キャレットが現在置かれているフィールドの値を増加させます。キャレットがリテラル文字列内に置かれているときには、操作は無視されます。
[↓] SpinIncrement プロパティあるいは SpinIncrementValue プロパティで設定した値を単位として、キャレットが現在置かれているフィールドの値を減少させます。キャレットがリテラル文字列内に置かれているときには、操作は無視されます。
[Ctrl]+[←] 現在のまたは1つ前の入力フィールドの先頭か、行の先頭にキャレットを移動します。選択された部分がある場合は、選択が解除されてその部分の左端にキャレットが置かれます。
[Ctrl]+[→] 次の入力フィールドまたは行の末尾にキャレットを移動します。選択された部分がある場合は、選択が解除されてその部分の右端にキャレットが置かれます。
[Home] 最初の入力フィールドの先頭または行の先頭にキャレットが移動します。
[End] 最後の入力フィールドの終了位置または行の末尾にキャレットを移動します。
[Ctrl]+[Home] コントロール内のテキストの先頭にキャレットを移動します。
[Ctrl]+[End] コントロール内のテキストの末尾にキャレットを移動します。
[Tab]または[Shift]+[Tab] TabAction プロパティが TabAction.Control に設定されている場合には、タブオーダーの設定に応じてそのフォーム上の前または次のコントロールにフォーカスが移動します。TabAction プロパティが TabAction.Field に設定されている場合には、1つ前または次の入力フィールドにキャレットが移動します。最初または最後のフィールドに達した場合、タブオーダーの設定に応じてそのフォーム上の前または次のコントロールにフォーカスが移動します。

スピンボタンが有効になっている場合、コントロールにフォーカスがある状態でマウスホイールを操作すると、[↑]キーまたは[↓]キーを押したときと同じ動作を実現できます。ただし、ドロップダウンカレンダーが表示されている場合は、マウスホイールでスピンボタンを操作することはできません。

選択
操作 説明
[Shift]+[←] 1つ前の文字を選択します。上書きモードでは、点滅しているブロックカーソルの1つ前にある文字が最初に選択されます。
[Shift]+[→] 次の文字を選択します。上書きモードでは、点滅しているブロックカーソルの位置にある文字が最初に選択されます。
[Ctrl]+[Shift]+[←] 現在のキャレット位置から現在または1つ前のフィールドの先頭位置まで、もしくは行の先頭までを選択します。上書きモードでは、点滅しているブロックカーソルの位置にある文字は選択されません。
[Ctrl]+[Shift]+[→] 現在のキャレット位置から次のフィールドの先頭まで、または行の末尾までを選択します。上書きモードでは、点滅しているブロックカーソルの位置にある文字も選択されます。
[Shift]+[Home] 現在のキャレット位置から最初の非リテラル文字列の先頭まで、または行の先頭までを選択します。上書きモードでは、点滅しているブロックカーソルの位置にある文字は選択されません。
[Shift]+[End] 現在のキャレット位置から最後の非リテラル文字列の末尾まで、または行の末尾までを選択します。上書きモードでは、点滅しているブロックカーソルの位置にある文字も選択されます。
[Ctrl]+[Shift]+[Home] 現在のキャレット位置から行の先頭までを選択します。上書きモードでは、点滅しているブロックカーソルの位置にある文字は選択されません。
[Ctrl]+[Shift]+[End] 現在のキャレット位置から行の末尾までを選択します。上書きモードでは、点滅しているブロックカーソルの位置にある文字も選択されます。
[Shift]+クリック 現在のキャレット位置からクリックした位置までを選択します。
ダブルクリック ダブルクリックしたフィールドを選択します。
クリック+ドラッグ マウスでドラッグした範囲を選択します。
[Shift]+ダブルクリック 現在のキャレット位置からダブルクリックしたフィールドまでを選択します。
[Ctrl]+クリック コントロールに含まれるすべての内容を選択します。
編集
操作 説明
[Del] 次の非リテラル文字を削除します。削除できるのは、入力フィールド内の文字だけです。選択された部分や上書きモードで点滅しているブロックカーソルの位置にある文字は最初に削除されます。
[BackSpace] 1つ前の非リテラル文字を削除します。選択された部分は最初に削除されるので注意してください。
[Ctrl]+[Del] 現在のキャレット位置から入力フィールドの最後の文字までを削除します。キャレットがリテラル文字列に位置している場合、削除はできません。選択された部分は最初に削除されるので注意してください。
[Ctrl]+[BackSpace] 現在のキャレット位置と現在または1つ前の入力フィールドの先頭との間にある文字を削除します。選択された部分は最初に削除されるので注意してください。
[Ctrl]+[C] 選択されたテキストをクリップボードにコピーします。
[Ctrl]+[V] クリップボードのテキストをコントロールに貼り付けます。
[Ctrl]+[X] 選択されたテキストを切り取り、クリップボードにコピーします。
[Ctrl]+[A] コントロールに含まれるすべての内容を選択します。
[Ctrl]+[Z] 編集前またはフォーカス取得時の値に戻します。
[Ctrl]+[Ins] 選択されたテキストをクリップボードにコピーします。
[Shift]+[Del] 選択されたテキストを切り取り、クリップボードにコピーします。SelectionLength プロパティが 0 のときは、[BackSpace]キーと同じ処理が行われます。
[Shift]+[Ins] クリップボードのテキストをコントロールに貼り付けます。
関連トピック

 

 


© MESCIUS inc. All rights reserved.