Здравствуйте! Я пользуюсь DataGridVeiw. Каждую видимую строку можно скрыть:
Код | private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 3 && e.RowIndex < dataGridView1.RowCount) { dataGridView1.CurrentCell = null; dataGridView1.Rows[e.RowIndex].Visible = false; }
AdjustGridHeight(); }
|
, а потом, по необходимости нажатием кнопки "Show hidden" вернуть всё назад:
Код | private void btnShowHidden_Click(object sender, EventArgs e) { foreach (DataGridViewRow row in dataGridView1.Rows) { row.Visible = true; }
AdjustGridHeight(); }
|
После каждого действия ("hide row" или "Show hidden" ) я пересчитываю высоту грида:
Код | private void AdjustGridHeight() { int listHeight = (dataGridView1.Rows[0].Height * dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Visible) + dataGridView1.ColumnHeadersHeight); this.dataGridView1.Height = listHeight; }
|
Проблема в том, что когда я делаю "Hide" первой строке, то потом она уже не появляется, не смотря на то что высота грида пересчитывается правильно. Происходит только с первой строкой |