Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Скрытие строк DataGridView / 3 сообщений из 3, страница 1 из 1
21.05.2010, 11:24
    #36641011
Anton--1978
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрытие строк DataGridView
Добрый день
Пишу примитивнейшую программу для обработки заявок пользователей. Заявки хранятся в таблице БД SQL, на экран выводятся в DataGridView. Ну там их добавить можно, отредактировать итп. У заявок есть статусы - Новая , в работе, отозвана, исполнена. Из базы мы их не удаляем, чтобы отчитываться.
Но заявки копятся и хочется сделать более продвинутую сортировку , а именно разместить на форме несколько CheckBox ов которые бы означали статусы(соответственно четыре CheckBox) и когда они не отмечены, то в DataGridView записи с этим статусом не видны. Т.е. там где в какой-либо строке в шестом столбце содержится статус такой-то должны скрываться.
Я написал подпрограмму обработки смены статуса CheckBox

Private Sub Sortirovka()
Timer1.Stop()
Timer2.Stop()
WorkOfZayavkiBindingSource.SuspendBinding()
Dim circlefor As Integer = 0
Dim chislozapisey As Integer
chislozapisey = DataGridView1.RowCount
For circlefor = 0 To chislozapisey - 1
If CheckBox5.Checked = False And DataGridView1.Rows(circlefor).Cells(6).Value = "Новый" Then DataGridView1.Rows(circlefor).Visible = False
If CheckBox5.Checked = True And DataGridView1.Rows(circlefor).Cells(6).Value = "Новый" Then DataGridView1.Rows(circlefor).Visible = True
If CheckBox9.Checked = False And DataGridView1.Rows(circlefor).Cells(6).Value = "В работе" Then DataGridView1.Rows(circlefor).Visible = False
If CheckBox9.Checked = True And DataGridView1.Rows(circlefor).Cells(6).Value = "В работе" Then DataGridView1.Rows(circlefor).Visible = True
If CheckBox10.Checked = False And DataGridView1.Rows(circlefor).Cells(6).Value = "Закрыт" Then DataGridView1.Rows(circlefor).Visible = False
If CheckBox10.Checked = True And DataGridView1.Rows(circlefor).Cells(6).Value = "Закрыт" Then DataGridView1.Rows(circlefor).Visible = True
If CheckBox11.Checked = False And DataGridView1.Rows(circlefor).Cells(6).Value = "Отозван пользователем" Then DataGridView1.Rows(circlefor).Visible = False
If CheckBox11.Checked = True And DataGridView1.Rows(circlefor).Cells(6).Value = "Отозван пользователем" Then DataGridView1.Rows(circlefor).Visible = True
Next circlefor
WorkOfZayavkiBindingSource.ResumeBinding()
Timer1.Start()
Timer2.Start()
End Sub



Однако не срабатывает. Но если написать условия указав конкретную строку , например так

If CheckBox11.Checked = False Then DataGridView1.Rows(1).Visible = False
If CheckBox11.Checked = True Then DataGridView1.Rows(1).Visible = True

То работает, т.е. загвоздка где то в логике подпрограммы. Но вот где ? Я уже все локти искусал.

Статусы написаны правильно , столбец указан верно, где я ошибся? Тут видимо просто в логике загвоздка.

Заранее спасибо
...
Рейтинг: 0 / 0
21.05.2010, 11:27
    #36641019
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрытие строк DataGridView
вы разделом ошиблись, вам сюда
...
Рейтинг: 0 / 0
21.05.2010, 12:44
    #36641269
Anton--1978
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрытие строк DataGridView
Опубликовал вопрос в соответствующем разделе, удалите этот пожалуйста
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Скрытие строк DataGridView / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]