やりたいこと
DataGridViewの行の高さを内容に合わせて変更し、なおかつ最小の高さも決めておきたい。
困ったこと
dataGridView.AutoResizeRowsをAllCellsにすると、コラムの中の一番大きいコラムに合わせて行が変更されるが、最小の高さまでは決められない。MinimumHeightというプロパティもあるけど、これは逆に最大の高さになる感じ(名前が紛らわしい)。
解決方法
各行のセルで一番大きい行の高さを取得する。
以下の例では、行の最小値は50で、一番大きい行がそれ以下なら、50になる。
foreach(DataGridViewRowrowindataGridView.Rows){varcells=row.Cells.Cast<DataGridViewCell>();intmaxHeight=cells.Max(n=>n.PreferredSize.Height);row.Height=maxHeight>row.Height?maxHeight:50;}
Heightではなく、PreferredSize.Heightにしている。heightだと内容に合わせたサイズではなくて、もともと行として決まっているHeightが取得されるのか。