次の方法で共有


DataGrid コントロールの既定のキーボードとマウスの動作

このトピックでは、ユーザーがキーボードとマウスを使用して DataGrid コントロールと対話する方法について説明します。

DataGridとの一般的な操作には、ナビゲーション、選択、編集が含まれます。 選択動作は、 SelectionMode プロパティと SelectionUnit プロパティの影響を受けます。 このトピックで説明する動作の原因となる既定値は、 DataGridSelectionMode.ExtendedDataGridSelectionUnit.FullRowです。 これらの値を変更すると、説明とは異なる動作が発生する可能性があります。 セルが編集モードの場合、編集コントロールは、 DataGridの標準的なキーボード動作をオーバーライドする可能性があります。

既定のキーボード動作

次の表に、 DataGridの既定のキーボード動作を示します。

キーまたはキーの組み合わせ 説明
現在のセルのすぐ下のセルにフォーカスを移動します。 フォーカスが最後の行にある場合、下方向キーを押しても何も行われません。
現在のセルのすぐ上のセルにフォーカスを移動します。 フォーカスが最初の行にある場合、上方向キーを押しても何も行われません。
行の前のセルにフォーカスを移動します。 行の最初のセルにフォーカスがある場合、左矢印キーを押しても何も起こりません。
右矢印 行の次のセルにフォーカスを移動します。 フォーカスが行の最後のセルにある場合、右方向キーを押しても何も起こりません。
Home 現在の行の最初のセルにフォーカスを移動します。
終了 現在の行の最後のセルにフォーカスを移動します。
PageDown 行がグループ化されていない場合は、コントロールを、完全に表示される行数だけ下にスクロールします。 列を変更せずに、完全に表示された最後の行にフォーカスを移動します。

行がグループ化されている場合は、列を変更せずに、 DataGrid の最後の行にフォーカスを移動します。
PageUp 行がグループ化されていない場合は、完全に表示される行数だけ上方向にコントロールをスクロールします。 列を変更せずに、最初に表示される行にフォーカスを移動します。

行がグループ化されている場合は、列を変更せずに DataGrid の最初の行にフォーカスを移動します。
タブ 現在の行の次のセルにフォーカスを移動します。 フォーカスが行の最後のセルにある場合は、フォーカスを次の行の最初のセルに移動します。 フォーカスがコントロールの最後のセルにある場合は、親コンテナーのタブ オーダーで次のコントロールにフォーカスを移動します。

現在のセルが編集モードで Tab キーを押すと、フォーカスが現在の行から離れる場合、その行に加えられた変更はフォーカスが変更される前にコミットされます。
Shift + Tab 現在の行の前のセルにフォーカスを移動します。 フォーカスが行の最初のセルに既にある場合は、前の行の最後のセルにフォーカスを移動します。 フォーカスがコントロールの最初のセルにある場合は、親コンテナーのタブ オーダーで前のコントロールにフォーカスを移動します。

現在のセルが編集モードで Tab キーを押すと、フォーカスが現在の行から離れる場合、その行に加えられた変更はフォーカスが変更される前にコミットされます。
Ctrl + ↓ 現在の列の最後のセルにフォーカスを移動します。
Ctrl + ↑ 現在の列の最初のセルにフォーカスを移動します。
Ctrl + 右方向キー 現在の行の最後のセルにフォーカスを移動します。
Ctrl + ← 現在の行の最初のセルにフォーカスを移動します。
Ctrl + ホーム コントロールの最初のセルにフォーカスを移動します。
Ctrl + End コントロール内の最後のセルにフォーカスを移動します。
Ctrl + PageDown ページダウンと同じです。
Ctrl + PageUp ページアップと同じです。
F2 DataGrid.IsReadOnly プロパティがfalseされ、現在の列に対して DataGridColumn.IsReadOnly プロパティがfalseされている場合は、現在のセルをセル編集モードにします。
Enter 現在のセルと行に対する変更をコミットし、現在のセルのすぐ下のセルにフォーカスを移動します。 フォーカスが最後の行にある場合は、フォーカスを移動せずに変更をコミットします。
Esc キー コントロールが編集モードの場合は、編集を取り消し、コントロールで行われた変更を元に戻します。 基になるデータ ソースが IEditableObjectを実装している場合、Esc キーを 2 回押すと、行全体の編集モードが取り消されます。
BackSpace セルを編集するときにカーソルの前の文字を削除します。
削除 セルを編集するときに、カーソルの後の文字を削除します。
Ctrl + Enter フォーカスを移動せずに、現在のセルへの変更をコミットします。
CTRL + A SelectionModeExtendedに設定されている場合は、DataGrid内のすべての行を選択します。

選択キー

SelectionModeプロパティがExtendedに設定されている場合、ナビゲーション動作は変更されませんが、Shift キーを押しながらキーボードで移動すると (Ctrl + Shift キーを含む)、複数行の選択が変更されます。 ナビゲーションが開始される前に、コントロールは現在の行をアンカー行としてマークします。 Shift キーを押しながら移動すると、アンカー行と現在の行の間のすべての行が選択に含まれます。

次の選択キーは、複数行の選択を変更します。

  • Shift + ↓

  • Shift + ↑

  • シフト + ページダウン

  • SHIFT + PAGE UP

  • Ctrl + Shift + ↓

  • Ctrl + Shift + ↑

  • Ctrl + Shift + Home

  • Ctrl + Shift + End

既定のマウス動作

次の表に、 DataGridの既定のマウス動作を示します。

マウス アクション 説明
選択されていない行をクリックする クリックした行を現在の行にし、クリックしたセルを現在のセルにします。
現在のセルをクリックする 現在のセルを編集モードにします。
列ヘッダー セルをドラッグする DataGrid.CanUserReorderColumnsプロパティがtrueされ、現在の列に対してDataGridColumn.CanUserReorder プロパティがtrueされている場合は、新しい位置にドロップできるように列を移動します。
列ヘッダーの区切り記号をドラッグする DataGrid.CanUserResizeColumns プロパティがtrueされ、現在の列のDataGridColumn.CanUserResize プロパティがtrueされている場合は、列のサイズを変更します。
列ヘッダーの区切り記号をダブルクリックする DataGrid.CanUserResizeColumns プロパティがtrueされ、現在の列に対して DataGridColumn.CanUserResize プロパティがtrueされている場合は、Autoサイズ設定モードを使用して列のサイズを自動変更します。
列ヘッダー セルをクリックする DataGrid.CanUserSortColumns プロパティがtrueされ、現在の列に対して DataGridColumn.CanUserSort プロパティがtrueされている場合は、列を並べ替えます。

既に並べ替えられている列のヘッダーをクリックすると、その列の並べ替え方向が逆になります。

Shift キーを押しながら複数の列ヘッダーをクリックすると、クリックした順序で複数の列で並べ替えられます。
Ctrl キーを押しながら行をクリックする SelectionModeExtendedに設定されている場合は、連続しない複数行の選択を変更します。

行が既に選択されている場合は、行の選択を解除します。
Shift キーを押しながら行をクリックする SelectionModeExtendedに設定されている場合は、連続する複数行の選択を変更します。
行グループ ヘッダーをクリックする グループを展開または折りたたみします。
の左上隅にある [すべて選択] ボタンをクリックします。 DataGrid SelectionModeExtendedに設定されている場合は、DataGrid内のすべての行を選択します。

マウスの選択

SelectionModeプロパティがExtendedに設定されている場合、Ctrl キーまたは Shift キーを押しながら行をクリックすると、複数行の選択が変更されます。

Ctrl キーを押しながら行をクリックすると、その行は選択状態を変更し、他のすべての行は現在の選択状態を維持します。 これを行って、隣接していない行を選択します。

Shift キーを押しながら行をクリックすると、選択範囲には、現在の行と、クリック前の現在の行の位置にあるアンカー行の間のすべての行が含まれます。 Shift キーを押しながらクリックすると、現在の行は変更されますが、アンカー行は変更されません。 これを行って、隣接する行の範囲を選択します。

Ctrl + Shift キーを組み合わせて、隣接する行の隣接しない範囲を選択できます。 これを行うには、前に説明したように Shift キーを押しながらクリックして最初の範囲を選択します。 行の最初の範囲が選択されたら、Ctrl キーを押しながらクリックして次の範囲の最初の行を選択し、Ctrl キーを押しながら Shift キーを押しながら次の範囲の最後の行をクリックします。

こちらも参照ください