Я думаю, что ваша проблема в updateExcel_Click
..
Проблема, на мой взгляд, заключается в следующем:
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
Поскольку вы здесь прыгаете по строкам, представьте, что dataGridView1.RowCount
имеет значение 3, и вы делаете dataGridView1.RowCount - 1
, поэтому dataGridView1.RowCount = 2
.
При этом ваше желание будет работать 0, 1 и 2. Когда цель, с моей точки зрения, вы хотите, чтобы он запускал 0, 1, 2 и 3.
Проблема, о которой вы говорите в своем вопросе: не обновляет последнюю строку, потому что for переходит на последнюю строку ..
Решение:
private void updateExcel_Click(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.RowCount; i++)
{
if (!RowIsEmpty(i))
{
dataGridView1[2, i].Value = Combo.Text;
}
}
}
Или, если вы хотите сохранить логику, которая вам нужна, вам нужно на ваше усмотрение добавить это <
, что-то вроде этого:
for (int i = 0; i <= dataGridView1.RowCount - 1; i++)