Share via


Windows フォーム DataGridView コントロールの選択モード

DataGridView コントロール内のユーザーの選択に基づいて、アプリケーションにアクションを実行させたい場合があります。 アクションに応じて、可能な選択の種類を制限したい場合があります。 たとえば、現在選択されているレコードのレポートを印刷できるアプリケーションがあるとします。 この場合、行内の任意の場所をクリックすると常に行全体が選択され、一度に 1 行しか選択できないように DataGridView コントロールを構成することができます。

許可される選択を指定するには、DataGridView.SelectionMode プロパティに次の DataGridViewSelectionMode 列挙値のいずれかを設定します。

DataGridViewSelectionMode 値 説明
CellSelect セルをクリックすると、そこが選択されます。 行と列のヘッダーは選択に使用できません。
ColumnHeaderSelect セルをクリックすると、そこが選択されます。 列ヘッダーをクリックすると、その列全体が選択されます。 列ヘッダーは並べ替えには使用できません。
FullColumnSelect セルまたは列ヘッダーをクリックすると、その列全体が選択されます。 列ヘッダーは並べ替えには使用できません。
FullRowSelect セルまたは行ヘッダーをクリックすると、その行全体が選択されます。
RowHeaderSelect 既定の選択モードです。 セルをクリックすると、そこが選択されます。 行ヘッダーをクリックすると、その行全体が選択されます。

注意

実行時に選択モードを変更すると、現在の選択が自動的にクリアされます。

既定で、複数の行、列、またはセルを選択するには、マウスでドラッグする方法、選択時に Ctrl キーや Shift キーを押して選択範囲を広げたり変更したりする方法、左上のヘッダー セルをクリックしてコントロール内のすべてのセルを選択する方法があります。 この動作を防ぐには、MultiSelect プロパティを false に設定します。

FullRowSelect および RowHeaderSelect モードでは、行を選択して Delete キーを使用して行を削除することができます。 ユーザーが行を削除できるのは、現在のセルが編集モードではなく、AllowUserToDeleteRows プロパティが true に設定され、基となるデータ ソースがユーザーによる行の削除をサポートしている場合のみです。 これらの設定は、プログラムによる行の削除を妨げるものではないことに注意してください。

プログラムによる選択

現在の選択モードの場合、ユーザーによる選択だけでなく、プログラムによる選択の動作も制限されます。 現在の選択をプログラムで変更するには、DataGridView コントロール内に存在するセル、行、列の Selected プロパティを設定します。 また、選択モードに応じて、SelectAll メソッドを使用してコントロール内のすべてのセルを選択することもできます。 選択を解除するには ClearSelection メソッドを使用します。

MultiSelect プロパティが true に設定されている場合は、要素の Selected プロパティを変更することで、DataGridView 要素を選択に追加したり、削除したりすることができます。 それ以外の場合は、ある要素の Selected プロパティを true に設定すると、他の要素が選択から自動的に削除されます。

CurrentCell プロパティの値を変更しても、現在の選択は変更されないことに注意してください。

現在選択されているセル、行、または列のコレクションは、DataGridView コントロールの SelectedCellsSelectedRows、および SelectedColumns プロパティを使用して取得できます。 コントロール内のすべてのセルが選択されている場合、これらのプロパティへのアクセスは非効率的です。 この場合、パフォーマンスの低下を避けるために、まず AreAllCellsSelected メソッドを使用してください。 また、これらのコレクションにアクセスして、選択されたセル、行、または列の数を判別することは非効率的です。 代わりに GetCellCountGetRowCountGetColumnCount のいずれかのメソッドを使用し、Selected の値を渡すようにしてください。

ヒント

選択したセルをプログラムで使用するサンプル コードは、DataGridView クラスの概要を参照してください。

関連項目