C#小ネタ(DataGridViewの行を手動で追加して値を入れる)

job_programmer C#
CopyRight https://www.irasutoya.com/

DBから持ってきた値を表示させるのはしょっちゅうやるのですが、入力画面を作ってDataGridViewへ仮置きするのをたまにやろうとすると色々忘れているので自身の覚書です。

列作成

まずはDataGridViewの列を作成します。

// Form_Loadあたりに
// ごく簡素な名簿みたいなもの

// DataGridViewの列数
DataGridView1.ColumnCount = 4;

DataGridView1.Columns[0].HeaderText = "項番";
DataGridView1.Columns[1].HeaderText = "苗字";
DataGridView1.Columns[2].HeaderText = "名前";
DataGridView1.Columns[3].HeaderText = "年齢";

DataGridView1.Columns[0].Width = 60;
DataGridView1.Columns[1].Width = 150;
DataGridView1.Columns[2].Width = 150;
DataGridView1.Columns[3].Width = 60;

DataGridView1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
DataGridView1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
DataGridView1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
DataGridView1.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

名簿ならフリガナ要るだろうとか、その辺はサンプルということで。

入力フォーム

項番、苗字、名前、年齢それぞれ入力用にTextBoxを用意しておきます。項番に数値nが入力されていたらDataGridViewのn行目のデータをTextBoxに呼び出して編集、入力されていなければ新規登録のイメージです。

登録ボタンを押したとき

ボタンのClickイベントへこんな感じで。入力値のチェックは先に済ませておきましょう。

// DataGridViewの何行目か
int i;

if (項番のTextBox.Text == string.Empty)
{
    // 新規登録
    DataGridView1.Rows.Add();
    i = DataGridView1.Rows.Count - 1;
}
else
{
    // 既存データの変更
    i = int.Parse(項番のTextBox.Text) - 1;
}

DataGridView1.Rows[i].Cells[0].Value = i + 1;
DataGridView1.Rows[i].Cells[1].Value = 苗字のTextBox.Text;
DataGridView1.Rows[i].Cells[2].Value = 名前のTextBox.Text;
DataGridView1.Rows[i].Cells[3].Value = int.Parse(年齢のTextBox.Text);

// 入力値クリア
項番のTextBox.Text = string.Empty;
苗字のTextBox.Text = string.Empty;
名前のTextBox.Text = string.Empty;
年齢のTextBox.Text = string.Empty;

// DataGridViewの行を非選択
DataGridView1.CurrentCell = null;

まとめ

いつも忘れるおバカな自分へ助け舟として。

コメント