データグリッドビューにチェックボックスを配置して、
行を選択したらチェックの状態も一緒に変更するサンプル。
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に設定するといった場合は、列の指定をインデックスではなく列名で指定した方が無難かと思います。
サクッとした話ですが以上。
ではでは。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント