Я предлагаю вам проверить возвращаемые значения GetLength (0) и GetLength (1), чтобы убедиться, что они делают то, что вы ожидаете от них.Кроме того, у меня всегда была одна дополнительная строка (для создания новой строки на лету), когда я использовал сетки данных.
Обновление: дополнительная строка исчезает, когда для IsReadOnly установлено значение «True» (как я уже сказал,это сделано для редактирования на лету), и дополнительный столбец не является реальным столбцом, это пространство заголовка строки, показанного справа.Исчезает, если для параметра HeadersVisibility задано значение «Все» или «Строка».