powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView. Закрасить ячейки по условию
6 сообщений из 6, страница 1 из 1
DataGridView. Закрасить ячейки по условию
    #39551455
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

VB.Net.

Есть база данных в Access и запрос, который возвращает такой результат.
Код Код Бренда Код города Бренд Город Январь Февраль ...Январь_Заморозка Февраль_Заморозка...111Бренд1Город1200300...False False...212Бренд1Город2400200...True False...313Бренд1Город3210300...False False...414Бренд1Город4400200...True False...521Бренд2Город1500720...False False...622Бренд2Город2630890...False False...723Бренд2Город3270390...False False...824Бренд2Город4440210...True False....................................
Таких 600-1000 строк.

В приложении на форме присутствует ComboBox. Там заполняется список брендов. После того как выбрали бренд, например, "Бренд1" - заполняется DataGrigView с помощью запроса с Where='Бренд1', но отображается следующим образом.

Бренд Город Январь Февраль ...Ноябрь ДекабрьБренд1Город1200300...400500Бренд1Город2400200...300400Бренд1Город3210300...800500Бренд1Город4400200...700600
То есть поля "Код", "Код города", "Код бренда", и поля, заканчивающиеся в названиях на "_Заморозка" не видимы. Остальным полям заданы DisplayIndex по порядку.

Здесь DataGridView отображает так как надо.

Дальше пытаюсь сделать так, если у названия поля-месяца, заканчивается на "_Заморозка" равно True, то ячейка соответствующего месяца заполняется желтым цветом. Иначе не закрашивается. Например, у Бренд1 и Город1 (Строка 1) поле Январь_Заморозка = false, то ячейка в колонке "Январь" не закрашивается. Дальше, у Бренд1 и Город2 (Строка 2) поле Январь_Заморозка =True, то ячейка в колонке "Январь" закрашивается.

Как это прописать в коде? Я правильно понимаю, что это нужно прописывать в событийной процедуре "CellFormatting"?
...
Рейтинг: 0 / 0
DataGridView. Закрасить ячейки по условию
    #39551460
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ferzmikkЯ правильно понимаю, что это нужно прописывать в событийной процедуре "CellFormatting"?
Да, можно и там.

Но лучше в RowPostPaint или, еще лучше, CellPainting, так как последняя как раз приспособлена под всякие извращения с цветами
...
Рейтинг: 0 / 0
DataGridView. Закрасить ячейки по условию
    #39551487
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В DataGridView для полей в названиях заканчивающиеся на "_Заморозка" отключается видимость.
Код: vbnet
1.
DataGridView.Columns("Январь_Заморозка").Visible = False


Тогда в CellPainting объект e не увидит поле "Январь_Заморозка"
Код: vbnet
1.
2.
3.
    Private Sub DataGridView_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs) Handles DataGridView.CellPainting

    End Sub


Как вытащить поле "Январь_Заморозка" для соответствующей строки, чтобы узнать закрашивать текущую ячейку или нет?

Насколько я правильно понимаю ячейки пробегаются не только по всем строкам, но и заголовок тоже.
...
Рейтинг: 0 / 0
DataGridView. Закрасить ячейки по условию
    #39551504
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удалось так написать. В обычной процедуре
Код: vbnet
1.
2.
3.
4.
5.
       For Each CurrentRow In DataGridView.Rows
            If CurrentRow.cells(DataGridView.Columns("Январь_Заморозка").Index).Value = True Then
                CurrentRow.cells(DataGridView.Columns("Январь").Index).Style.BackColor = Color.Yellow
            End If
       Next CurrentRow
...
Рейтинг: 0 / 0
DataGridView. Закрасить ячейки по условию
    #39551507
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В DataGridView нужно вставить итоговую строку. Пишу так
Код: vbnet
1.
2.
        Dim TotalRowNumber As Integer
        TotalRowNumber = DataGridView.Rows.Add()


Вылезает ошибка "Строки нельзя программным способом добавить в коллекцию строк DataGridView, если элемент управления привязан к данным."

Как правильно добавить итоговую строку?
...
Рейтинг: 0 / 0
DataGridView. Закрасить ячейки по условию
    #39551554
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Уважаемый ferzmikk, на данном форуме действует правило - "один вопрос, один топик".
А не "бложик пользователя с вопросами"
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView. Закрасить ячейки по условию
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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