|
DataGridView. Закрасить ячейки по условию
|
|||
---|---|---|---|
#18+
Здравствуйте! 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"? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2017, 14:05 |
|
DataGridView. Закрасить ячейки по условию
|
|||
---|---|---|---|
#18+
ferzmikkЯ правильно понимаю, что это нужно прописывать в событийной процедуре "CellFormatting"? Да, можно и там. Но лучше в RowPostPaint или, еще лучше, CellPainting, так как последняя как раз приспособлена под всякие извращения с цветами ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2017, 14:33 |
|
DataGridView. Закрасить ячейки по условию
|
|||
---|---|---|---|
#18+
В DataGridView для полей в названиях заканчивающиеся на "_Заморозка" отключается видимость. Код: vbnet 1.
Тогда в CellPainting объект e не увидит поле "Январь_Заморозка" Код: vbnet 1. 2. 3.
Как вытащить поле "Январь_Заморозка" для соответствующей строки, чтобы узнать закрашивать текущую ячейку или нет? Насколько я правильно понимаю ячейки пробегаются не только по всем строкам, но и заголовок тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2017, 15:52 |
|
DataGridView. Закрасить ячейки по условию
|
|||
---|---|---|---|
#18+
Удалось так написать. В обычной процедуре Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2017, 17:17 |
|
DataGridView. Закрасить ячейки по условию
|
|||
---|---|---|---|
#18+
В DataGridView нужно вставить итоговую строку. Пишу так Код: vbnet 1. 2.
Вылезает ошибка "Строки нельзя программным способом добавить в коллекцию строк DataGridView, если элемент управления привязан к данным." Как правильно добавить итоговую строку? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2017, 17:33 |
|
|
start [/forum/topic.php?fid=20&fpage=37&tid=1399621]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 163ms |
0 / 0 |