2011-02-09 8 views
1

Для того, чтобы инициализировать мой VouchersDGV Data Grid View Я использую следующийУдалить строки из DataGridView

DGV.AllowUserToDeleteRows = True 
For i = 1 To DGV.RowCount - 1 
    DGV.Rows.Remove(DGV.Rows(i - 1)) 
    DGV.Refresh() 
Next 

Но когда я подножка его в первый раз, когда я беру ошибку

{ «Uncommitted новая строка не может быть удалена.»} System.InvalidOperationException

Если я буду продолжать и запустить свой код и написать новую строку в моей таблице данных, и я постараюсь, чтобы инициализировать AG айн (теперь у меня есть две строки, одна имеет данные, а другой пустой) Я беру эту ошибку

{ «Uncommitted новая строка не может быть удалена.»} System.InvalidOperationException

я могу «Решите, пожалуйста, кто-нибудь помог мне в этом?

ответ

5
If Not DGV.Rows(i).IsNewRow Then 
    DGV.Rows.RemoveAt(i) 
End If 

Добавьте это условие в свою петлю. Кроме того, вы также можете использовать DGV.RejectChanges(), который сбросит все состояние строки до оригинала.

+0

@Dear Mohib, я сделал то, что вы предлагаете мне, но имея следующее условие. Строка (0) имеет все столбцы с данными, Row (1) там без данных в столбцах. Я даю команду DGV.Rows.RemoveAt (0) и возвращает мне ошибку DGV.Rows.RemoveAt (0) {«Операция не может быть выполнена в этом обработчике событий».} System.InvalidOperationException. Пожалуйста, помогите мне в этом вопросе. –

+0

В каком случае вы пишете этот код? –

+0

Private Sub VouchersDGV_RowValidating –

2

Если ваша цель состоит в том, чтобы очистить коллекцию строк, вы можете просто использовать метод Clear коллекции Rows:

DGV.Rows.Clear()

Надеется, что это помогает.

+0

Я тоже сделал ваше решение, но оно возвращает мне ошибку. \t \t VouchersDGV.Rows.Clear() \t {«Операция не может выполняться в этом обработчике событий».} \t System.InvalidOperationException. Что я буду с этим делать? –

+0

@Lefteris: Я не знал, что у вас есть этот код в обработчике событий RowValidating. Не могли бы вы пояснить вариант использования, который вы хотите реализовать с помощью этого datagrid, особенно, как и когда строки должны быть удалены? – Damien

+0

Извините за задержку. Когда я покидаю строку (в 7-й ячейке), я хочу записать данные в файл (это делается) и автоматически удалить текущую строку, чтобы привести DataGridView в исходное положение. –

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