Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Сортировка по полу в DataGridView не работает


Автор: жека2905 6.5.2016, 08:53
Здравствуйте.
Есть DataGridView с информацией о клиентах, и столбец с название "Пол" по этому столбцу с помощью CheckBox производится сортировка.
вот код 
Код

 Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.CheckedChanged

        If CheckBox2.Checked = True Then
            For Each row As DataGridViewRow In Form1.Grid1.Rows
                Dim pol As String = CStr(row.Cells("Пол").Value)
                Select Case pol
                    Case "Мужской"
                        Form1.Grid1.Rows.Remove(row)
                    Case "Женский"
                        row.Visible = True
                End Select
            Next
        End If

    End Sub

 но работает не всегда правильно, не могу разобраться в чём дело, дело в том что когда отмечаешь CheckBox2 ячейки со значением "Мужской" удаляются, а ячейки со значением "Женский" остаются видимыми, но у меня почему то всё равно одна ячейка со значением "Мужской" остаётся видимой, не удаляется. Кто подскажет может ошибка в коде где нибудь.

Автор: diadiavova 6.5.2016, 12:29
Убедись, что в оставшейся строке слово написано именно так, как в образце с которым ты его сравниваешь. Ну мало ли, может с маленькой буквы написано или пробел лишний закрался.

Автор: chupachups 7.5.2016, 23:08
Потому что ты перебираешь коллекцию:
Код

For Each row As DataGridViewRow In Form1.Grid1.Rows

и удаляешь из нее строки:
Код

Form1.Grid1.Rows.Remove(row)

так не делается !!!
Или делай через простой For по индексам строк (причем с конца в начало, а не с начала до конца) или все строки засунь в List, а с ним уже через For Each


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sortirovka-po-polu-v-DataGridView-ne-rabotayet-id572c322fae20151a5b8b4567#findElement_E7045_572e4b51ae2015fd4f9ad8af_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)