※当サイトはアフィリエイト広告を利用しています

WindowsフォームのDataGridViewで自動的に列の幅を調整する方法

2023年7月27日ITDataGridView,VisualStudio,Windowsフォーム

課題:DataGridViewのセルに表示しきれないテキストがある

↑のようにセルに表示しきれていない部分がある時、
自動的に列の幅を調整し、内容を全て表示したい。

自動的に列幅を調整する:コード

DataGridViewのAutoSizeColumnsModeで自動列幅調整を設定することができます。

//ヘッダー&セルの内容に合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
//ヘッダーを除く全てのセルに合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader;
//ヘッダーに合わせ列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader;
//表示しているヘッダー&セルの内容に合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
//表示しているセルの内容に合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader;
//DataGridViewの表示幅に合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
//列幅調整を行わない
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None

上記のプロパティの設定値を一つずつ解説していきます。

AllCells

//ヘッダー&セルの内容に合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

DataGridViewの全ヘッダー&全セル内容に合わせて列幅を自動調整します。

スクロールしないと表示されない部分のセル内容も考慮されているのが分かると思います。

AllCellsExceptHeader

//ヘッダーを除く全てのセルに合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader;

DataGridViewの全セル内容に合わせて列幅を調整します。
ヘッダーは考慮されません。

スクロールしないと表示できない部分のセルも考慮していますが、
ヘッダーが無視されていることが分かると思います。

ColumnHeader

//ヘッダーに合わせ列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader;

DataGridViewのヘッダーに合わせて列幅を自動調整します。

DisplayedCells

//表示しているヘッダー&セルの内容に合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;

DataGridViewのヘッダー&表示セルの内容に合わせて列幅を自動調整します。

スクロールしないと表示できない部分のセルが考慮されていないことが分かると思います。

DisplayedCellsExceptHeader

//表示しているセルの内容に合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader;

DataGridViewの表示セルに合わせて列幅を自動調整します。

ヘッダーとスクロールしないと表示できない部分のセルが考慮されていないことが分かると思います。

Fill

//DataGridViewの表示幅に合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

DataGridViewの表示部に幅に合わせて列を自動調整します。

DataGridView表示部に合わせて列幅が調整されていることが分かると思います。

None

//列幅調整を行わない
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;

列幅の自動調整をしない場合の設定値です。

VisualStudioプロパティで列幅を自動設定したい場合

対象DataGridViewのプロパティAutoSizeColumnsModeを弄ってあげましょう。

Windowsフォーム関連記事

2023年7月27日ITDataGridView,VisualStudio,Windowsフォーム

Posted by raishin