スクロールバーが表示されないように初期の高さが設定されていると仮定すると、これらのイベント ハンドラーを追加すると、行が追加または削除されたときに高さを調整できます。
private void dataGridView_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
int height = 0;
for (int i = e.RowIndex; i < (e.RowIndex + e.RowCount); i++)
height += dataGridView.Rows[i].Height;
dataGridView.Height += height;
}
private void dataGridView_RowsRemoved(object sender, DataGridViewRowsAddedEventArgs e)
{
int height = 0;
for (int i = e.RowIndex; i < (e.RowIndex + e.RowCount); i++)
height += dataGridView.Rows[i].Height;
dataGridView.Height -= height;
}
補足として、プログラムでこの機能を使用しないことをお勧めします。自動的にサイズ変更するリストボックスは、一般的に UI 設計の選択肢として適切ではありません。このコントロールで何を達成しようとしていますか? ここでやろうとしていることを行うには、もっと効果的な方法があるかもしれません。