он не удаляет мне реестры в datagridview?

друзья, я делаю экран в визуальном basic net, с визуальным studio 2017, провожу более 4 часов trantando удаления нескольких реестров и он не делает это мне, datagrid наполняется на основании консультации, которую произвел с sp в SQL Server, а именно у меня нет соединенных данных.

Это мой код:

Dim anFila As Integer = dgvCuentaTotal.Rows.Count()
            Dim aoLoHayo As Boolean = False

            If dgvCuentaTotal.Rows.Count > 0 Then
                For Each aoRow As DataGridViewRow In dgvCuentaTotal.Rows
                    'Validar que ingresen las filas que no vienen vacillas
                    If aoRow IsNot Nothing Then
                        'chktraspasar
                        aoLoHayo = aoRow.Cells(3).Value
                        'If aoLoHayo = True Then
                        If Convert.ToBoolean(aoRow.Cells("Traspasar").Value) Then
                            anFila -= 1
                            dgvCuentaTotal.Rows.Remove(aoRow)
                            dgvCuentaTotal.Refresh()
                        End If
                    End If
                Next
                dgvCuentaTotal.Refresh()
                'Validar que traiga registros
            End If

У меня есть колонна с checkbox, шесть реестров и пользователь помечают шесть, чтобы быть удаленными, и этот одинокий код удаляет мне 3 линии, оставляя другие три, они могли бы давать мне руку.

Привет

0
задан 07.11.2019, 22:27
1 ответ

То, за чем оно последует, состоит в том, что ты удаляешь линию внутри цикла, и enumerador цикла теряется.

Указывает в array или другом типе переменной на линии в eleminar и однажды законченный пробегать datagridview ты удаляешь линии, сохраняемые в array или переменной

1
ответ дан 01.12.2019, 12:20
  • 1
    Спасибо Луис Карлос, я продолжил твои рекомендации, изменил код таким образом, добавил переменную типа integer, так называемый anEliminar, здесь я буду сохранять общее количество реестров, которое будет нужно удалять, и я сделал другая из типа array вызов aoEliminar (), в этой я сохраняю число индекса линии, закончив цикл, он переменная удалять, отрицаю у него положение pxq он дает мне ошибку ИНДЕКСА, если я это не делаю и перемещаю переменную datagridview array для того, чтобы он удалил тех, которых он сохраняет. – alfredo.avmb 08.11.2019, 01:13
  • 2
    Это код Луис Карлос, возможно ты даешь мне твои комментарии. Dim aoEliminar () Эксперт Интехер Дим anEliminar Схвати Интехер Фор Эач aoRow As Датагридвьевров Ин dgvCuentaTotal. Rows If aoRow Иснот Нотинг Тен Иф Convert. ToBoolean (aoRow. Cells (" Traspasar").Value) Then anEliminar + = 1 Редим Пресерве aoEliminar (anEliminar) aoEliminar (anEliminar) = aoRow. Index Энд Иф Энд Иф Некст Фор i As Интехер = 0 To anEliminar - 1 dgvCuentaTotal. Rows. RemoveAt (aoEliminar (i)) dgvCuentaTotal. Refresh () Next dgvCuentaTotal. Refresh () Энд Иф – alfredo.avmb 08.11.2019, 01:21
  • 3
    @alfredo.avmb мне радостно, он быть pó dido помогать – Luis Carlos Donado Avella 12.11.2019, 20:07