DataGridViewで自動的に行の高さを調整する方法
【問題】
↑のような時、自動的に行の高さをセル内容によって調整できたら便利です。
どうすれば自動的に行の高さを調整できるか説明していきます。
【解決策:コード】
DataGridViewのAutoSizeRowsModeで行の高さの自動調整が設定できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
//行ヘッダー&全セルの内容に合わせて行の高さ自動<img src="https://raishin.xyz/wp-content/uploads/2017/07/3-1.png" alt="" width="603" height="214" class="alignnone size-full wp-image-56" />調整 dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; //全セルの内容に合わせて行の高さ自動調整 ※行ヘッダーは除く dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders; //行ヘッダーに合わせて行の高さを自動調整 dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllHeaders; //行ヘッダー&表示セルの内容に合わせて行の高さ自動調整 dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells; //表示セルの内容に合わせて行の高さ自動調整 ※行ヘッダーは除く dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders; //表示行ヘッダーに合わせて行の高さ自動調整 dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedHeaders; //業の高さを自動調整しない dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None; |
上記のプロパティ設定値を一つずつ説明していきます。
【AllCells】
行ヘッダー&全セルの内容に合わせて行の高さを自動調整します。
行ヘッダー、スクロールしないと表示されない部分も調整されています。
【AllCellsExceptHeaders】
全セルの内容に合わせて行の高さ自動調整 ※行ヘッダーは除く
【AllHeaders】
行ヘッダーに合わせて行の高さを自動調整
【DisplayedCells】
行ヘッダー&表示セルの内容に合わせて行の高さ自動調整
行ヘッダーと表示セルに合わせて自動調整をするはずですが……、
なぜか【AllCells】の時と同じ結果になってしまいました。
設定ミスかもしれません。原因が分かったら修正します。
【AllCells】に比べて表示セルしか対象にしないので、
パフォーマンスは良くなるはずです。
DataGridViewが重い時はDisplayedCellsを採用するといいかもしれません。
【DisplayedCellsExceptHeaders】
表示セルの内容に合わせて行の高さ自動調整 ※行ヘッダーは除く
なぜか【AllCellsExceptHeaders】と同じ結果になります。
表示セルというのはDataGridViewの初期表示部に表示されているセルのことを指す、
と思っていましたが、もしかしたら違うのかもしれません。
【DisplayedHeaders】
表示行ヘッダーに合わせて行の高さ自動調整
これも【AllHeaders】と同じ結果になっています。
【None】
行の高さを自動調整しません。
【まとめ】
ALL系とDisplay系の結果がイコールになるという現象が起きています。
なぜだ……?
僕が何か勘違いしている可能性が高いです。
知っている人がいれば是非教えてください。
ALL系よりはDisplay系の方が軽いはずなので、
支障がなければDisplay系を使うと良いかもしれません。
ディスカッション
コメント一覧
まだ、コメントがありません