Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/25: Рейтинг темы: голосов - 25, средняя оценка - 5.00
13 / 13 / 3
Регистрация: 05.06.2015
Сообщений: 93

Изменение цвета ячеек DataGridView

08.07.2016, 00:25. Показов 5111. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
проблема у меня мне кажется странная...
прогрммно создаю datagridview
VB.NET
1
2
3
Dim dg As New DataGridView
dg.Dock = DockStyle.Fill
tc.TabPages(0).Controls.Add(dg)
возможно важно то, что источником данных для нее используется datatable
VB.NET
1
dg.DataSource = dt
далее нужно сменить цвет определенных ячеек/строк
так вот... вполне нормально работает целиком переопределение цвета по умолчанию
VB.NET
1
dg.RowsDefaultCellStyle.BackColor = Color.Blue
однако для определенных строк(и такой подход используется во всех местах которые нашел)
VB.NET
1
dg.Rows(1).RowsDefaultCellStyle.BackColor = Color.Blue
не работает...
пробовал по всякому менять все свойства, связанные с цветом, какие нашел
реакции никакой(хотел получить хоть какое-то изменение цвета)
VB.NET
1
2
3
4
5
6
7
8
9
10
            Dim rowred As New DataGridViewCellStyle
            rowred.BackColor = Color.Red
            For j = sSt To sEn
                dg.Rows(j).Cells(3).Value = "True"
                dg.Rows(j).DefaultCellStyle = rowred
                dg.Rows(j).Cells(3).Style.SelectionBackColor = Color.Aqua
                dg.Rows(j).Cells(3).Style.SelectionForeColor = Color.Aqua
                dg.Rows(j).Cells(3).Style.BackColor = Color.Aqua
                dg.Rows(j).Cells(3).Style.ForeColor = Color.Aqua
            Next
но опять же без проблем работает без указания строк
VB.NET
1
dg.AlternatingRowsDefaultCellStyle = rowred
что я делаю не так???
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.07.2016, 00:25
Ответы с готовыми решениями:

Изменение цвета строки в DataGridView
всем доброго вечера. помогите пожалуйста. как мне сделать так чтобы можно было в таблице произвольную строку сделать другого цвета. таблицу...

Изменение цвета части ячейки DataGridView
Добрый день! Столкнулся с необходимостью разукрасить ячейку DataGridView в три цвета (три backcolor). Серфинг в интернете ничего не...

Задайте изменение цвета кнопок и цвета шрифта на кнопках формы в ходе выполнения программы
1. Задайте изменение цвета кнопок и цвета шрифта на кнопках формы в ходе выполнения программы. 2. Создайте кнопку «Перемещение формы» ...

3
1723 / 1547 / 165
Регистрация: 25.07.2015
Сообщений: 2,650
08.07.2016, 07:45
Лучший ответ Сообщение было отмечено LEonardo_ как решение

Решение

В приложенных файлах (стырено сто лет назад с rsdn) очень подробно
описан datagridview.
Во второй части в конце как раз ваша проблема решается.
Правда на шарпе (C#), но всё понятно и без ретранслятора на барсик.
Рекомендую.))
5
13 / 13 / 3
Регистрация: 05.06.2015
Сообщений: 93
08.07.2016, 19:59  [ТС]
Цитата Сообщение от Kulma Посмотреть сообщение
Рекомендую.))
за материал спасибо!
очень много полезного нашел
хотя прямого ответа на мою проблему там нет, ее я тоже решил:
дело в том, что datagridview я создавал и пытался отрисовать цвета ДО загрузки формы ее содержащей.
ну тоесть
VB.NET
1
MyForm.Show()
у меня вызывалось после заполнения всех ячеек и рисования.
Так вот при этом можно оказывается менять стиль datagridview но не его элементов... а элементы можно менять только у уже нарисованого контрола...
событие CellFormatting как оказалось отлично работает, что и привело меня к этой мысли)
Спасибо!
0
14 / 14 / 0
Регистрация: 24.09.2015
Сообщений: 209
20.10.2021, 09:58
Тема хоть и старая, но вдруг кому пригодится...
В моём случае, цвет ячейки не изменялся по причине того, что я вызывал метод AcceptChanges() у DataTable заданной в качестве DataSource для DataGridView

После того как перенёс цикл закрашивания ниже, то всё стало корректно работать.

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
            Dim ThisDT As DataTable
            Dim ThisDGV As DataGridView
 
            'Тут получаем нужную нам DataGridView
            'ThisDGV = Наша_DataGridView
            ThisDT = DirectCast(ThisDGV.DataSource, DataTable)
 
            ThisDT.Clear()
 
            'Тут заполняем таблицу-источник данными
 
            ThisDT.AcceptChanges()
 
            ThisDGV.ClearSelection()
 
            For Each DGVR As DataGridViewRow In ThisDGV.Rows
                'Тут пишем своё условие по которому будет выполняться окраска
                If True Then
                    DGVR.Cells("NameColumn").Style.BackColor = Color.LightGreen
                End If
 
            Next
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.10.2021, 09:58
Помогаю со студенческими работами здесь

Объединение ячеек в DataGridView
Добрый день! Подскажите пожалуйста, как сделать объединение ячеек в DataGridView. Мне бы хотелось получить примерно такой вид как на...

Цвет ячеек datagridview
Пожалуйста подскажите, как написать код, что бы в датагриде определенные ячейки столбца, в которых значение допустим меньше 5 принимали...

Проверка незаполненных ячеек в DataGridView
Перед вставкой в ячейку проверяю не занята ли она. Проверяю только строки. Вот код: Private Sub Button3_Click(ByVal sender As...

Получение данных из ячеек DataGridview
В общем у меня в Datagridview заргужается база, имеет 6 столбцов 52 строки. Первые 2 столбца заполнены и их трогать не нада, оставшиеся 4...

Сложить значения ячеек в DataGridView
не складывает значения ячеек, не пойму Dim a As Integer Dim d As Integer a = Convert.ToInt32(DataGridView1(0,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru