次の方法で共有


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

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

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

既定のキーボード動作

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

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

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

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

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

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

選択キー

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

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

  • Shift + 下矢印

  • Shift + 上矢印

  • Shift + Page Down

  • シフト+ページアップ

  • Ctrl + Shift + ↓

  • Ctrl + Shift + ↑

  • Ctrl+Shift+ホーム

  • 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 キーを押しながら次の範囲の最後の行をクリックします。

参照