DataGrid コントロールの既定のキーボードとマウスの動作
このトピックでは、ユーザーがキーボードとマウスを使用して DataGrid コントロールと対話する方法について説明します。
DataGrid との一般的な操作には、ナビゲーション、選択、編集が含まれます。 選択動作は、SelectionMode プロパティと SelectionUnit プロパティの影響を受けます。 このトピックで説明する動作の原因となる既定値は、DataGridSelectionMode.Extended と DataGridSelectionUnit.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 | SelectionMode が Extendedに設定されている場合は、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 キーを押しながら行をクリックする | SelectionMode が Extendedに設定されている場合は、連続しない複数行の選択を変更します。 行が既に選択されている場合は、行の選択を解除します。 |
Shift キーを押しながら行をクリックする | SelectionMode が Extendedに設定されている場合は、連続する複数行の選択を変更します。 |
行グループのヘッダーをクリックする | グループを展開または折りたたみします。 |
DataGrid の左上隅にある [すべて選択] ボタンをクリックします | SelectionMode が Extendedに設定されている場合は、DataGrid内のすべての行を選択します。 |
マウスの選択
SelectionMode プロパティが Extendedに設定されている場合、Ctrl キーまたは Shift キーを押しながら行をクリックすると、複数行の選択が変更されます。
Ctrl キーを押しながら行をクリックすると、その行は選択状態を変更し、他のすべての行は現在の選択状態を維持します。 これを行って、隣接していない行を選択します。
Shift キーを押しながら行をクリックすると、選択範囲には、現在の行と、クリック前の現在の行の位置にあるアンカー行の間のすべての行が含まれます。 Shift キーを押しながらクリックすると、現在の行は変更されますが、アンカー行は変更されません。 これを行って、隣接する行の範囲を選択します。
Ctrl + Shift キーを組み合わせて、隣接する行の隣接しない範囲を選択できます。 これを行うには、前に説明したように Shift キーを押しながらクリックして最初の範囲を選択します。 行の最初の範囲が選択されたら、Ctrl キーを押しながらクリックして次の範囲の最初の行を選択し、Ctrl キーを押しながら Shift キーを押しながら次の範囲の最後の行をクリックします。
参照
.NET Desktop feedback