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);
}
}