Windows Forms プログラムを作成する場合、グリッド形式の一覧で表示する場合 DataGridView コントロールを使用します。今回は、その DataGridView に関連した小ネタを集めてみました。
プログラムコードから DataGridView の行を選択するには、つぎの方法があります。
選択直後に、「↑↓」キーで選択行を移動可能にするには、セルを指定する最初の方法を使用する必要があります。
DataGridView で TAB キーを入力した場合の標準の動作は、現在アクティブなセルの次のセルに移動することです。この動作を、次のTab位置にあるコントロールに制御を移したい場合は、次のようにします。
標準では、各行の左端に選択用のヘッダーが表示されます。これを表示させないようにするためには、次のようにします。
標準では、セル単位の選択となります。これを行単位の選択にするには、次のようにします。
現在の表示サイズで表示可能な行数を知るには、次のメソッドを使用します。
現在選択状態にある行から、対応するデータである DataRow にたどり着くには、次のようにします。
DataGridView に DataTable をバインドすると、DataTable のコラムから自動的に列が生成されてしまいます。この自動生成をさせないようにするには、Form の Load ハンドラで、次のようにします。
DataGridView の選択色を通常のままにするには、以下の2つの処理を両方行います。
DataGridView の項目に checkBox を追加した場合、checkBox の値を変更しても、そのコントロールから離れた時点でないと DataSource のモデルに値が反映されません。checkBox の値を変更すると直ちに反映するには、次のようにします。
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridlView1.CurrentCellAddress.X == 0 && dataGridlView1.IsCurrentCellDirty)
{
dataGridlView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
DataGridView で選択すると、セルの表示色が選択色に反抗されます。この選択そのものを禁止するには、セル選択のハンドラで選択状態をクリアすればよいです。
DataGridView のセルをダブルクリックした場合、そのセルが見出しであってもダブルクリックのハンドラが呼び出されます。見出しかどうかを知るためには、ダブルクリックのハンドラで次のようにします。