Как скрыть выбранную строку datagridview в C#?

вот мой код:

public void Zam()
    {
        int RowCount = dataGridView1.SelectedRows.Count;
        int ColumnCount = dataGridView1.Columns.Count;
        int index = dataGridView1.CurrentCell.RowIndex;
        Object[,] DataArray = new object[RowCount, ColumnCount];
        
        for (int i = 0; i <= ColumnCount - 1; i++)
        {
            for (int j = 0; j <= dataGridView1.RowCount - 1; j++)
            {
                if (index == dataGridView1.RowCount - 1)
                {
                    MessageBox.Show("Строка не выделена");
                }
                else
                {
                    DataArray[i, j] = dataGridView1.Rows[index].Visible = false;
                }
            }
        }
    }

а в результате появляется такая ошибка: System.InvalidOperationException: "Строку, связанную с положением CurrencyManager, нельзя сделать невидимой." Подскажите плиз как правильно мне скрыть строку выбранную в элементе datagridview


Ответы (1 шт):

Автор решения: Pavel Panek

Перед началом цикла сделай активной ячейку, которая останется видимой. Думаю, сработает даже bull.

var rows = dataGridView.SelectedRows;
dataGridView.CurrentCell = null;
foreach (DataGridViewRow r in rows)
  r.Visible = false;

→ Ссылка