Рейтинг:
15
Richard Deeming
Когда вы перебираете коллекцию и одновременно изменяете ее, вам нужно работать в обратном порядке, чтобы избежать пропуска строк.
For i = data.Rows.Count - 1 To 0 Step -1
(Если это не решит проблему, то вам нужно будет объяснить, что означает "не работает".)
Member 13998781
спасибо за записку. Я действительно пробовал это сделать, но получаю ошибку "Uncommitted new row cannot be deleted", где программа достигает по адресу: data.Rows.RemoveAt(i)
Спасибо!
Richard Deeming
Тогда тебе придется проверьте, является ли строка новой строкой[^] прежде чем пытаться удалить его.
Dim row As DataGridViewRow = data.Rows(i)
If Not row.IsNewRow AndAlso row.Cells(2).Value.ToString() Then
data.Rows.RemoveAt(i)
End If
Member 13998781
Спасибо! это исправило ошибку. Я просто хочу удалить пустые строки только для этого столбца 2,но эта команда удалит и все остальные строки в других столбцах?!!
Richard Deeming
В этом нет никакого смысла. Вы либо удаляете строку, либо не удаляете ее. Вы не можете удалить часть строки!
Member 13998781
Вы правы! Но вот моя проблема: у меня есть 6 столбцов, которые все имеют данные, за исключением столбца 2, где некоторые строки не имеют никаких данных (пустые), мне нужно получить поездку этих пустых строк только в этом столбце. Я думал, что могу удалить только эти строки! есть ли какой-нибудь другой способ сдвинуть вверх все данные в столбце 2, чтобы между ними не было пустых строк? большое спасибо.
Richard Deeming
Пустая клетка-это не строка!
Вы можете удалить только всю строку (все столбцы). Вы не можете удалить часть строки.
Member 13998781
Я сделал изменения, теперь я получаю ошибку как "использовать ключевое слово 'new' для создания экземпляра объекта". Спасибо!
Member 13998781
Спасибо! Я посмотрю, смогу ли я подойти к этому по-другому!