Архив Тэгов: Row

.Net Программирование

Автоматическое изменение высоты DataGridView по количеству строк C#

Использовал компонент таблицы DataGridView и не обнаружил там такого свойства, как автоматическое изменение высоты таблицы, по количеству строк, решил сам написать метод, который будет выравнивать высоту, по отображенным строкам.
Для этого, для начала создадим и подпишемся на обработчики событий добавления и удаления новой строки, делается это с помощью следующего кода:

    this.dataGridView1.RowsAdded += new System.Windows.Forms.DataGridViewRowsAddedEventHandler(this.dataGridView1_RowsAdded);
    this.dataGridView1.RowsRemoved += new System.Windows.Forms.DataGridViewRowsRemovedEventHandler(this.dataGridView1_RowsRemoved);
 
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
    // если в таблицу добавлена новая строка, то изменить высоту таблицы
    ChangeHeight();
}
 
private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
{
    // если в таблице удалена строка, то изменить высоту таблицы
    ChangeHeight();
}

Ну а теперь, собственно напишем метод, который будет менять высоту

private void ChangeHeight()
{
    // меняем высоту таблицу по высоте всех строк
    dataGridView1.Height = dataGridView1.Rows.GetRowsHeight(DataGridViewElementStates.Visible) +
                       dataGridView1.ColumnHeadersHeight;
}