次の方法で共有


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

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

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

DataGridViewSelectionMode の値

説明

CellSelect

セルをクリックすると、そのセルが選択されます。 行ヘッダーおよび列ヘッダーを使用した選択はできません。

ColumnHeaderSelect

セルをクリックすると、そのセルが選択されます。 列ヘッダーをクリックすると、その列全体が選択されます。 列ヘッダーを使用した並べ替えはできません。

FullColumnSelect

セルまたは列ヘッダーをクリックすると、その列全体が選択されます。 列ヘッダーを使用した並べ替えはできません。

FullRowSelect

セルまたは行ヘッダーをクリックすると、その行全体が選択されます。

RowHeaderSelect

既定の選択モードです。 セルをクリックすると、そのセルが選択されます。 行ヘッダーをクリックすると、その行全体が選択されます。

注意

実行時に選択モードを変更すると、その時点での選択は自動的に解除されます。

既定では、ユーザーは、選択範囲を拡大または変更する際に Ctrl キーまたは Shift キーを押しながらマウスをドラッグすることで、複数の行、列、またはセルを選択できます。また、左上隅のヘッダー セルをクリックすることで、コントロール内のすべてのセルを選択できます。 この動作を無効にするには、MultiSelect プロパティを false に設定します。

FullRowSelect モードおよび RowHeaderSelect モードでは、ユーザーは、行を選択して Del キーを押すことで、選択した行を削除できます。 ユーザーが行を削除できるのは、現在のセルが編集モードになっておらず、AllowUserToDeleteRows プロパティが true に設定されており、基になるデータ ソースでユーザーによる行の削除がサポートされている場合に限られます。 これらの設定に関係なく、プログラムからは行を削除できます。

プログラムによる選択

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

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

CurrentCell プロパティの値を変更しても、現在の選択は変更されません。

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

ヒント

選択されているセルをプログラムで使用する方法を示すコード例は、DataGridView クラスの概要にあります。

参照

処理手順

方法 : Windows フォーム DataGridView コントロールの選択モードを設定する

参照

DataGridView

MultiSelect

SelectionMode

DataGridViewSelectionMode

その他の技術情報

Windows フォーム DataGridView コントロールでの選択およびクリップボードの使用