【C#】DataGridView の 行選択時にチェックボックスの状態を変更する(その1)
おはようございます。
今日はちょっと単発のC#ネタです。
データグリッドビューにチェックボックスを配置して、
行を選択したらチェックの状態も一緒に変更するサンプルとなります。
スポンサーリンク
画面
Windows Form でプロジェクトを作成し、画面にデータグリッドビューを配置します。
先頭列をチェックボックス(DataGridViewCheckBoxColumn)にして、他は適当にテキストボックス列を2列を追加。
プロパティ
変更したプロパティはだいたい次のような感じ。
| プロパティ | 説明 | デフォルト | 変更後 |
|---|---|---|---|
| AllowUserToResizeRows | ユーザーが列のサイズを変更できるかどうか | True | False |
| EditMode | セルの編集が開始される方法を決定するモード | EditOnKeystrokeOrF2 | EditProgrammatically |
| SelectionMode | DataGridView のセルの選択方法 | RowHeaderSelect | FullRowSelect |
| RowHeadersVisible | 行ヘッダーを含んでいる列が表示されるかどうか | True | False |
メソッド
メソッドは、「CellClick」のみ追加。
プログラム
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SampleDataGridCheckbox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
dataGridView1.Rows.Add(false, "テスト1", "テスト1");
dataGridView1.Rows.Add(false, "テスト2", "テスト2");
dataGridView1.Rows.Add(false, "テスト3", "テスト3");
dataGridView1.Rows.Add(false, "テスト4", "テスト4");
dataGridView1.Rows.Add(false, "テスト5", "テスト5");
dataGridView1.Rows.Add(false, "テスト6", "テスト6");
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewCheckBoxCell cell = (DataGridViewCheckBoxCell)dataGridView1[0, e.RowIndex];
if (cell.Value.ToString() == "False")
{
dataGridView1.Rows[e.RowIndex].SetValues(true);
}
else
{
dataGridView1.Rows[e.RowIndex].SetValues(false);
}
}
}
}
初期表示時に、テスト用のデータを6件ほど、データグリッドビューの行に追加。
起動してみる
無事に行を選択するとチェックされるようになりました。
まとめ
DataGridViewに表示するデータをDBから取得して、
DataSourceに設定するといった場合は、列の指定をインデックスではなく列名で指定した方が無難かと思います。
サクッとした話ですが以上。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません