Сегодня утром я столкнулся с подобной проблемой и выяснил причину этого исключения. Я взглянул на источник DataGridView и обнаружил, что в методах очистки столбцов и строк код проверяет внутреннее свойство с именем NoDimensionChangeAllowed. Если это false, то InvalidOperationException генерируется с сообщением «Операция не может быть выполнена в этом обработчике событий».
Я нашел там восемь обработчиков событий DataGridView, в которых затрагивается это свойство, и вы не можете изменять количество строк или столбцов:
CellEnter
CellLeave
CellValidated
CellValidating
RowEnter
RowLeave
RowValidated
RowValidating
Поэтому вам необходимо убедиться, что этот блок кода не запускается ни в одном из этих обработчиков. Если вы должны запустить код в результате одного из этих событий, вам нужно запустить его через BeginInvoke, как предлагается здесь: Ошибка проверки, но не может быть удалена в DataGridView