Ваша проблема связана с тем, что событие UserAddedRow
запускается для строки шаблона (той, что в самом низу, используется для добавления новых строк в сетку) - вы устанавливаете правильное значение, но неправильноrow.
Простое решение вашей проблемы:
protected override void OnUserAddedRow(DataGridViewRowEventArgs e)
{
// get the index for "1 before last row" - the one which you in fact edit/add
int actualRowIndex = this.Rows.Count - 2;
this.Rows[actualRowIndex].Cells[0].Value = employeeID;
base.OnUserAddedRow(e);
}
Я запустил этот простой пример, чтобы проиллюстрировать, о каких строках я говорю.Как только пользователь начинает вводить в шаблонной строке (левое изображение), он становится обычной строкой, и вставляется новая строка шаблона, и это в аргументах события (правое изображение).
