WindowsフォームのDataGridViewで自動的に列の幅を調整する方法
課題:DataGridViewのセルに表示しきれないテキストがある
↑のようにセルに表示しきれていない部分がある時、
自動的に列の幅を調整し、内容を全て表示したい。
![](https://www10.a8.net/0.gif?a8mat=3N82JT+1U34XE+4EKC+62MDD)
自動的に列幅を調整する:コード
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の全ヘッダー&全セル内容に合わせて列幅を自動調整します。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_644,h_240/https://raishin.xyz/wp-content/uploads/2017/07/2-1.png)
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_644,h_240/https://raishin.xyz/wp-content/uploads/2017/07/2-2.png)
スクロールしないと表示されない部分のセル内容も考慮されているのが分かると思います。
AllCellsExceptHeader
//ヘッダーを除く全てのセルに合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader;
DataGridViewの全セル内容に合わせて列幅を調整します。
ヘッダーは考慮されません。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_644,h_240/https://raishin.xyz/wp-content/uploads/2017/07/2-3.png)
スクロールしないと表示できない部分のセルも考慮していますが、
ヘッダーが無視されていることが分かると思います。
ColumnHeader
//ヘッダーに合わせ列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader;
DataGridViewのヘッダーに合わせて列幅を自動調整します。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_644,h_240/https://raishin.xyz/wp-content/uploads/2017/07/2-4.png)
DisplayedCells
//表示しているヘッダー&セルの内容に合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
DataGridViewのヘッダー&表示セルの内容に合わせて列幅を自動調整します。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_644,h_240/https://raishin.xyz/wp-content/uploads/2017/07/2-5.png)
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_644,h_240/https://raishin.xyz/wp-content/uploads/2017/07/2-6.png)
スクロールしないと表示できない部分のセルが考慮されていないことが分かると思います。
DisplayedCellsExceptHeader
//表示しているセルの内容に合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader;
DataGridViewの表示セルに合わせて列幅を自動調整します。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_644,h_240/https://raishin.xyz/wp-content/uploads/2017/07/2-7.png)
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_644,h_240/https://raishin.xyz/wp-content/uploads/2017/07/2-8.png)
ヘッダーとスクロールしないと表示できない部分のセルが考慮されていないことが分かると思います。
Fill
//DataGridViewの表示幅に合わせて列幅自動調整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
DataGridViewの表示部に幅に合わせて列を自動調整します。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_644,h_240/https://raishin.xyz/wp-content/uploads/2017/07/2-9.png)
DataGridView表示部に合わせて列幅が調整されていることが分かると思います。
None
//列幅調整を行わない
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
列幅の自動調整をしない場合の設定値です。
VisualStudioプロパティで列幅を自動設定したい場合
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_363,h_495/https://raishin.xyz/wp-content/uploads/2017/07/2-10.png)
対象DataGridViewのプロパティAutoSizeColumnsModeを弄ってあげましょう。
Windowsフォーム関連記事
- Windowsフォームでバージョン情報を画面タイトルの横に出す
- Windowsフォームのグループボックス・パネルのTabIndex設定方法
- Windowsフォームのコンボボックスのドロップダウンリストの幅の変更方法
- Windowsフォームを常に最前にする方法
- Windowsフォームの表示位置の種類と設定方法
- Windowsフォームにスクロールバーを自動的に表示する方法
- WindowsフォームのDataGridViewでセルに収まりきらなかった文字列を折り返して表示する方法
- WindowsフォームでTabIndexをまとめて並べ替える方法
- Windowsフォームでフォーム上に直線を引く方法
- WindowsフォームのDataGridViewで自動的に行の高さを調整する方法
- WindowsフォームのオブジェクトのIMEの設定
- WindowsフォームのDataGridViewで自動的に列の幅を調整する方法
- Windowsフォームの最大化・最小化の禁止設定
- Windowsフォームのコントロールにタブで遷移できないように設定する方法
- Windowsフォームでカスタムコントロールを作成しDLLとして保存する方法
ディスカッション
コメント一覧
まだ、コメントがありません