2016-11-04 2 views
-1

Я пытаюсь удалить строки в datagridview, но только удаляю несколько избранных снизу записей, которые квалифицируются. Мне нужно, чтобы удалить ВСЕ записи. Пожалуйста помоги! Вот мой код:Удаление строк в datagridview

For n As Int32 = DataGridView1.Rows.Count - 1 To 0 Step -1 
     Dim c As Boolean 
     c = DataGridView1.Rows(n).Cells(0).Value 
     If c = True Then 
      DataGridView1.Rows.RemoveAt(n) 
     Else 
     End If 
    Next n 

Примечания: Этот код работает на более короткие списки, но на больших списках он удаляет лишь некоторые из выбранных записей. По выбранному я имею в виду записи с «c = True»

+1

Итерация назад ... подумайте о том, что произойдет, когда вы RemoveAt - все перемещается вверх, так что некоторые пропускаются. Кроме того, удаление строк DGV ничего не значит для данных, если оно все еще привязано к DataTable. – Plutonix

+0

@Plutonix не то, что я уже делаю ??? Если да, то почему он не работает? – Chrisetiquette

+0

@LarsTech Я тоже так думал – Chrisetiquette

ответ

-1

Я бы перебирал сверху вниз, чтобы вы не пропустили строки при их удалении.

For each row as DataRow in DataGridView1.Rows 
    Dim c As Boolean 
    c = isNumeric(row(0) 
    If c = True Then 
     DataGridView1.Rows.Remove(row) 
    Else 
    End If 
Next 

Этот код должен работать на то, что вы хотели.

+1

Знаете ли вы, что итерация и удаление datarows одновременно приведет к ошибке? –

+0

Нет, я не был, мне никогда не приходилось это делать, но просто подумал, что это может сработать. –

+3

Извините, но это не сработает. –

Смежные вопросы