このトピックでは、ユーザーがキーボードとマウスを使用して DataGrid コントロールと対話する方法について説明します。
DataGridとの一般的な操作には、ナビゲーション、選択、編集が含まれます。 選択動作は、 SelectionMode プロパティと SelectionUnit プロパティの影響を受けます。 このトピックで説明する動作の原因となる既定値は、 DataGridSelectionMode.Extended と DataGridSelectionUnit.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 | SelectionModeがExtendedに設定されている場合は、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 キーを押しながら行をクリックする |
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