C# 開発

【C#】DataGridView

2025.02.06 DataGridView : 列を削除する

private void Form1_Load(object sender, EventArgs e)
{
    foreach (var idx in Enumerable.Range(0, 5))
    {
        dataGridView1.Columns.Add(Convert.ToString((char)('A' + idx)), Convert.ToString((char)('A' + idx)));
        dataGridView1.Rows.Add((idx + 1).ToString());
    }

    foreach (DataGridViewColumn item in dataGridView1.Columns)
    {
        item.SortMode = DataGridViewColumnSortMode.NotSortable;
    }

    dataGridView1.SelectionMode = DataGridViewSelectionMode.ColumnHeaderSelect;
}

private void button1_Click(object sender, EventArgs e)
{
    // データグリッドビューの選択された列を削除するには、
    // Columns コレクションの Remove メソッドに削除したい列を渡します。

    foreach (DataGridViewColumn item in dataGridView1.SelectedColumns)
    {
        dataGridView1.Columns.Remove(item);
    }
}

private void button2_Click(object sender, EventArgs e)
{
    // データグリッドビューの列を列名を指定して削除するには、Remove メソッドを使用します。
    // 通常列を追加するときには、列名を空文字列にして、ヘッダーしか指定しないこともあります。
    // 列名を指定していない場合は、Remove メソッドにより削除できません。
    dataGridView1.Columns.Remove("A");
}

private void button3_Click(object sender, EventArgs e)
{
    // データグリッドビューの列をインデックス番号を指定して削除するには、RemoveAt メソッドを使用します。
    dataGridView1.Columns.RemoveAt(0);
}

2025.02.06 DataGridView : 行を削除する

private void Form1_Load(object sender, EventArgs e)
{
    foreach (var idx in Enumerable.Range(0, 5))
    {
        dataGridView1.Columns.Add("", Convert.ToString((char)('A' + idx)));
        dataGridView1.Rows.Add((idx + 1).ToString());
    }
}

private void button1_Click(object sender, EventArgs e)
{
    // データグリッドビューの選択された行を削除するには、Rows コレクションの Remove メソッドに削除したい行を渡します。
    // 尚、新規データ追加行 (*) は削除できませんので、除外しています。

    foreach (DataGridViewRow item in dataGridView1.SelectedRows)
    {
        if (!item.IsNewRow)
        {
            dataGridView1.Rows.Remove(item);
        }
    }
}

private void button2_Click(object sender, EventArgs e)
{
    // データグリッドビューの行をインデックス番号を指定して削除するには、RemoveAt メソッドを使用します。

    dataGridView1.Rows.RemoveAt(3);
}

2025.02.06 DataGridView : Delete キーによる行削除を無効にする

private void Form1_Load(object sender, EventArgs e)
{
    // データグリッドビューは、行ヘッダー上で、Delete キーを入力すると行を削除する機能を持っています。
    // この機能を無効にします。

    dataGridView1.ColumnCount = 5;
    dataGridView1.RowCount = 5;
    dataGridView1.AllowUserToDeleteRows = false;
}

2025.02.06 DataGridView : 行が新規データ追加行 (*) であるかを判断する

private void button1_Click(object sender, EventArgs e)
{
    // データグリッドビューの各行をチェックして、新規データ追加行 (*) かを判断しています。

    foreach (var idx in Enumerable.Range(0, dataGridView1.Rows.Count))
    {
        if (dataGridView1.Rows[idx].IsNewRow)
        {
            dataGridView1[0, idx].Value = "新規";
        }
    }
}

-C# 開発