C# 開発

【C#】DataGridView

2025.04.02 DataGridView:列を選択可能にする

private void Form1_Load(object sender, EventArgs e)
{
    string[][] sData = { new string[] { "東京都", "新宿区" },
                         new string[] { "東京都", "渋谷区" },
                         new string[] { "東京都", "池袋"   },
                         new string[] { "京都府", "中京区" },
                         new string[] { "京都府", "南区" } };

    dataGridView1.Columns.Add("", "都道府県");
    dataGridView1.Columns.Add("", "市区町村");

    foreach (var idx in Enumerable.Range(0, 5))
    {
        dataGridView1.Rows.Add(sData[idx]);
    }

    // 列を選択可能にするためには、列によるソートを禁止したうえで、SelectionMode を変更します。

    dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable;
    dataGridView1.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable;
    dataGridView1.SelectionMode = DataGridViewSelectionMode.ColumnHeaderSelect;
}

2025.04.02 DataGridView:列をソート禁止にする

private void Form1_Load(object sender, EventArgs e)
{
    string[][] sData = { new string[] { "東京都", "新宿区" },
                         new string[] { "東京都", "渋谷区" },
                         new string[] { "東京都", "池袋"   },
                         new string[] { "京都府", "中京区" },
                         new string[] { "京都府", "南区" } };

    dataGridView1.Columns.Add("", "都道府県");
    dataGridView1.Columns.Add("", "市区町村");

    foreach (var idx in Enumerable.Range(0, 5))
    {
        dataGridView1.Rows.Add(sData[idx]);
    }

    // 全ての列に対して SortMode を変更して、ソートを禁止にしています。

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

2025.04.02 DataGridView:選択された行のインデックスを取得する

private void Form1_Load(object sender, EventArgs e)
{
    string[][] sData = { new string[] { "東京都", "新宿区" },
                         new string[] { "東京都", "渋谷区" },
                         new string[] { "東京都", "池袋"   },
                         new string[] { "京都府", "中京区" },
                         new string[] { "京都府", "南区" } };

    dataGridView1.Columns.Add("", "都道府県");
    dataGridView1.Columns.Add("", "市区町村");

    foreach (var idx in Enumerable.Range(0, 5))
    {
        dataGridView1.Rows.Add(sData[idx]);
    }
}

private void button1_Click(object sender, EventArgs e)
{
    // 選択された行は SelectedRows コレクションで取得できます。
    // このコレクションへの行情報の格納順ですが、選択行の終わりから開始方向に格納されています。今回は 1, 3, 4 行目の順に選択しています。

    foreach (DataGridViewRow item in dataGridView1.SelectedRows)
    {
        listBox1.Items.Add(item.Index);
    }
}

-C# 開発