DataGridViewの列と行を指定して、セルの値を取得するサンプルです。
列の指定は列名と列順の2つの指定方法があります。
列名指定
dataGridView1["列名", 行].Value;
列順指定(左端0から始まる列順)
dataGridView1[列順, 行].Value;
プログラミング
使用部品
No | 項目名 | Text | name | 部品 |
1 | 一覧 | 空 | dataGridView1 | DataGridView |
2 | セルの値を列名で取得ボタン | セルの値を列名で取得 | button1 | Button |
3 | セルの値を列順で取得ボタン | セルの値を列順で取得 | button2 | Button |
言語:C#
using System;
using System.Data;
using System.Windows.Forms;
namespace sample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// データを作成する
DataTable dt = createData();
// dataGridViewにデータをセットする
dataGridView1.DataSource = dt;
// ヘッダーのタイトルを設定する(列名指定(Nameプロパティ))
dataGridView1.Columns["no"].HeaderText = "No";
dataGridView1.Columns["title"].HeaderText = "書名";
dataGridView1.Columns["author_name"].HeaderText = "著者名";
dataGridView1.Columns["price"].HeaderText = "価格";
dataGridView1.Columns["publisher"].HeaderText = "出版社名";
dataGridView1.Columns["publication_date"].HeaderText = "出版年月";
dataGridView1.Columns["stock"].HeaderText = "在庫";
}
///
/// データ(DataTable)作成処理
///
/// データ
private DataTable createData()
{
// DataTableを宣言する
DataTable dt = new DataTable();
// 列を作成する
dt.Columns.Add("no", typeof(int)); // No
dt.Columns.Add("title", typeof(String)); // 書名
dt.Columns.Add("author_name", typeof(String)); // 著者名
dt.Columns.Add("price", typeof(Decimal)); // 価格
dt.Columns.Add("publisher", typeof(String)); // 出版社名
dt.Columns.Add("publication_date", typeof(DateTime)); // 出版年月
dt.Columns.Add("stock", typeof(bool)); // 在庫
// データを追加する
dt.Rows.Add(1, "がんばれるC# 入門", "坂本 学", 2980, "ABC出版", "2018/01/01", true);
dt.Rows.Add(2, "パーフェクトC#", "高橋 健一", 4200, "海上出版 ", "2019/03/03", false);
dt.Rows.Add(3, "学ぶC#", "工藤 太郎", 1600, "電気出版 ", "2020/08/04", true);
dt.Rows.Add(4, "初めてのC#", "渡辺 銀時", 2000, "川上出版 ", "2020/10/06", false);
dt.Rows.Add(5, "どんどん学べるC#", "沢田 剛", 3200, "心の友出版", "2020/11/11", true);
// dataGridViewを返す
return dt;
}
// セルの値を列名で取得
private void button1_Click(object sender, EventArgs e)
{
// 列
string sColumn = "title";
// 行
int iRow = 2;
string s = $"セルの値は「{dataGridView1[sColumn, iRow].Value}」です。";
MessageBox.Show(s, "情報",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
// セルの値を列順で取得
private void button2_Click(object sender, EventArgs e)
{
// 列
int iColumn = 1;
// 行
int iRow = 2;
string s1 = $"セルの値は「{dataGridView1[iColumn, iRow].Value}」です。";
MessageBox.Show(s1, "情報",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
実行結果
①セルの値を列名で取得
②セルの値を列順で取得
以上です。