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

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

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

Author24 — интернет-сервис помощи студентам
проблема у меня мне кажется странная...
прогрммно создаю 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.07.2016, 00:25
Ответы с готовыми решениями:

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

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

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

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

3
1136 / 881 / 152
Регистрация: 25.07.2015
Сообщений: 1,959
08.07.2016, 07:45 2
Лучший ответ Сообщение было отмечено LEonardo_ как решение

Решение

В приложенных файлах (стырено сто лет назад с rsdn) очень подробно
описан datagridview.
Во второй части в конце как раз ваша проблема решается.
Правда на шарпе (C#), но всё понятно и без ретранслятора на барсик.
Рекомендую.))
5
13 / 13 / 3
Регистрация: 05.06.2015
Сообщений: 93
08.07.2016, 19:59  [ТС] 3
Цитата Сообщение от Kulma Посмотреть сообщение
Рекомендую.))
за материал спасибо!
очень много полезного нашел
хотя прямого ответа на мою проблему там нет, ее я тоже решил:
дело в том, что datagridview я создавал и пытался отрисовать цвета ДО загрузки формы ее содержащей.
ну тоесть
VB.NET
1
MyForm.Show()
у меня вызывалось после заполнения всех ячеек и рисования.
Так вот при этом можно оказывается менять стиль datagridview но не его элементов... а элементы можно менять только у уже нарисованого контрола...
событие CellFormatting как оказалось отлично работает, что и привело меня к этой мысли)
Спасибо!
0
14 / 14 / 0
Регистрация: 24.09.2015
Сообщений: 208
20.10.2021, 09:58 4
Тема хоть и старая, но вдруг кому пригодится...
В моём случае, цвет ячейки не изменялся по причине того, что я вызывал метод 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
20.10.2021, 09:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.10.2021, 09:58
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru