LoginSignup
0
2

More than 3 years have passed since last update.

DataGridViewの行の高さを内容に合わせて変更し、なおかつ最小の高さも決めておきたい。

Last updated at Posted at 2020-08-16

やりたいこと

DataGridViewの行の高さを内容に合わせて変更し、なおかつ最小の高さも決めておきたい。

困ったこと

dataGridView.AutoResizeRowsをAllCellsにすると、コラムの中の一番大きいコラムに合わせて行が変更されるが、最小の高さまでは決められない。MinimumHeightというプロパティもあるけど、これは逆に最大の高さになる感じ(名前が紛らわしい)。

解決方法

各行のセルで一番大きい行の高さを取得する。
以下の例では、行の最小値は50で、一番大きい行がそれ以下なら、50になる。

foreach(DataGridViewRow row in dataGridView.Rows)
{
    var cells = row.Cells.Cast<DataGridViewCell>();
    int maxHeight = cells.Max(n => n.PreferredSize.Height);

    row.Height = maxHeight > row.Height ? maxHeight : 50;
}

Heightではなく、PreferredSize.Heightにしている。heightだと内容に合わせたサイズではなくて、もともと行として決まっているHeightが取得されるのか。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2