Сложите:DataGridView "удалить пустые строки" - кнопка
для Windows 10
Visual Studio 2015
C#, Win Forms
DataGridView
-> пытается удалить пустые строки на кнопку мыши событии
(я понятия не имею, где проблема вызвана, поэтому я щедро добавленный код из других кнопок)
Я использую некоторые кнопки, чтобы добавить строку (s):
private void someButton_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Add(1);
dataGridView1.Select();
dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[0];
}
И еще одна кнопка, чтобы удалить последнюю строку DataGridView:
private void anotherButton_Click(object sender, EventArgs e)
{
if (dataGridView1.Rows.Count > 0)
{
dataGridView1.Rows.Remove(dataGridView1.Rows[dataGridView1.Rows.Count - 1]);
}
}
с (на данный момент) пользователи смогут свободно редактировать ячейки в данных GridView некоторые строки могут оказаться пустыми. Для того, чтобы справиться с этим я пытался добавить третью кнопку удаления пустых строк:
private void thirdButton_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells[0].Value == null)
{
dataGridView1.Rows.RemoveAt(row.Index);
}
}
}
Когда я нажимаю «thirdButton» некоторые пустые строки удалены, но как ни странно не все из них. Я немного поиграл и заметил, что я должен был нажимать кнопку несколько раз, чтобы стереть все пустые строки. В DataGridView действует как следующее:
4 пустые строки существуют + нажатие кнопки
-> 2 пустые строки слева
2 пустые строки + нажатие кнопки
-> 1 пустая строка влево
1 последняя пустая строка кнопка + пресс
-> 0 пустые строки (яй)
(То же самое с, например, 11 -> 5 -> 2 -> 1 -> 0)
Так кажется, что моя кнопка сокращает вдвое количество пустых строк, и я хотел бы знать, почему! Любые идеи?
Есть ли причина, по которой "foreach" здесь не работает? – Avigrail
Я думаю, что вы имели в виду: for (int i = dataGridView1.Rows.Count - 1; i> -1; i--) –
@RudyTheHunter отлично! Теперь это работает. Спасибо вам обоим. Тем не менее, я хотел бы знать причину (если есть: p) – Avigrail