2025.02.01 DataGridView : 行を固定表示する
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.Columns.Add("", "都道府県");
dataGridView1.Columns.Add("", "市区町村");
dataGridView1.Columns.Add("", "番地");
dataGridView1.Columns.Add("", "建物");
dataGridView1.Columns.Add("", "部屋番号");
dataGridView1.Rows.Add(new string[] { "東京都", "新宿区", "1-5-3", "寿荘", "101" });
dataGridView1.Rows.Add(new string[] { "東京都", "渋谷区", "1-2-1", "高級マンション", "201" });
dataGridView1.Rows.Add(new string[] { "東京都", "池袋", "2-3-2", "アップル荘", "103" });
dataGridView1.Rows.Add(new string[] { "京都府", "中京区", "1-2-1", "社宅", "532" });
dataGridView1.Rows.Add(new string[] { "京都府", "南区", "1-1-1", "平屋", "221" });
foreach (var idx in Enumerable.Range(0, 50))
{
dataGridView1.Rows.Add();
}
// データグリッドビューの 1 行目を固定しています。これにより、縦スクロールしても 1 行目が隠れることはありません。
dataGridView1.Rows[0].Frozen = true;
}
2025.02.01 DataGridView : 列を固定表示する
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.Columns.Add("", "都道府県");
dataGridView1.Columns.Add("", "市区町村");
dataGridView1.Columns.Add("", "番地");
dataGridView1.Columns.Add("", "建物");
dataGridView1.Columns.Add("", "部屋番号");
dataGridView1.Columns.Add("", "その他1");
dataGridView1.Columns.Add("", "その他2");
dataGridView1.Columns.Add("", "その他3");
dataGridView1.Columns.Add("", "その他4");
dataGridView1.Columns.Add("", "その他5");
dataGridView1.Rows.Add(new string[] { "東京都", "新宿区", "1-5-3", "寿荘", "101", "", "", "", "", "" });
dataGridView1.Rows.Add(new string[] { "東京都", "渋谷区", "1-2-1", "高級マンション", "201", "", "", "", "", "" });
dataGridView1.Rows.Add(new string[] { "東京都", "池袋", "2-3-2", "アップル荘", "103", "", "", "", "", "" });
dataGridView1.Rows.Add(new string[] { "京都府", "中京区", "1-2-1", "社宅", "532", "", "", "", "", "" });
dataGridView1.Rows.Add(new string[] { "京都府", "南区", "1-1-1", "平屋", "221", "", "", "", "", "" });
// データグリッドビューの 1 列目と 2 列目を固定しています。これにより、横スクロールしてもこれらの列は隠れることはありません。
dataGridView1.Columns[1].Frozen = true;
}
2025.02.01 DataGridView : 列ヘッダーを列幅いっぱいまで表示する
private void Form1_Load(object sender, EventArgs e)
{
string[][] sData = { new string[] { "東京都", "新宿区" },
new string[] { "東京都", "渋谷区渋谷1丁目1番地の1" },
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]);
}
// データグリッドビューの列ヘッダーはデフォルトで WrapMode が有効になっています。
// そのため、列ヘッダータイトルの右側に余分なスペースがあるにも関わらず、折り返されて表示されます。
// これを列幅いっぱいまで表示するには、WrapMode を無効にする必要があります。
dataGridView1.ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False;
}
2025.02.01 DataGridView : 行の高さを内容に合わせて自動調整する
private void Form1_Load(object sender, EventArgs e)
{
string[][] sData = { new string[] { "東京都", "新宿区" },
new string[] { "東京都", "渋谷区渋谷1丁目1番地の1" },
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]);
}
// データグリッドビューの行の高さは内容に合わせて自動調整されます。
// 但し事前にセルの WrapMode を true にして複数行表示しておかないと意味がないかもしれません。
dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
}
2025.02.01 DataGridView : 列の幅を内容に合わせて自動調整する
private void Form1_Load(object sender, EventArgs e)
{
string[][] sData = { new string[] { "東京都", "新宿区" },
new string[] { "東京都", "渋谷区渋谷1丁目1番地の1" },
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]);
}
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
}
2025.02.01 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());
}
// カラムヘッダーの高さを変更可能にしています。
// 行ヘッダーの幅も変更可能にしていますが、行ヘッダーはデフォルトで変更可能です。
dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing;
}
2025.02.01 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());
}
// データグリッドビューの 3 番目の列の最小幅と 3 番目の行の最小高さを設定しています。
// インデックス番号は 0 から始まります。
dataGridView1.Columns[2].MinimumWidth = 100;
dataGridView1.Rows[2].MinimumHeight = 50;
}
2025.02.01 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());
}
// データグリッドビューの 2 番目の列と 2 番目の行のサイズを変更できないようにしています。
// インデックス番号は 0 から始まります。
// Resizable プロパティに設定する論理値は通常の true/false とは違いますので、注意が必要です。
dataGridView1.Columns[1].Resizable = DataGridViewTriState.False;
dataGridView1.Rows[1].Resizable = DataGridViewTriState.False;
}