С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 18.03.2016
Сообщений: 53

Как закрасить строку в DGV в зависимости от содержания ячейки?

16.08.2016, 12:23. Показов 2976. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как закрасить строку в DGV в зависимости от содержания ячейки?
Я делаю как-то так, но ничего не выходит...


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void AllBaseDataaGrid_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            for (int i = 0; i < AllBaseDataaGrid.Rows.Count; i++)
            {
                string name = AllBaseDataaGrid.Rows[i].Cells[13].Value.ToString();
                if (name == "в ремонте")
                {
                    AllBaseDataaGrid.Rows[i].DefaultCellStyle.BackColor = Color.Yellow;
                }
                else if (name == "выполнено")
                {
                    AllBaseDataaGrid.Rows[i].DefaultCellStyle.BackColor = Color.Green;
                }
            }
        }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.08.2016, 12:23
Ответы с готовыми решениями:

Как закрасить ячейки таблицы в зависимости от данных
Не подскажете код который будет закрашивать ячейки в зависимости от данных,информация в ячейки загружается из бд. &lt;/tr&gt; ...

Динамическая формула в зависимости от содержания ячейки
Добрый день! Не пойму как применить формулу в следующей ситуации. В таблице проставляется рабочее время и в колонке Отработанные дни...

В зависимости от содержания ячейки воспроизводить звук
1) Численное значение ячейки А1 может мыть '0' и '1'. На листе есть кнопка, после нажатия которой если А1=0 должен воспроизводится...

6
1 / 1 / 1
Регистрация: 12.08.2016
Сообщений: 20
16.08.2016, 15:50
Предлагаю ознакомиться, возможно окажется полезным дополнением в вашем случае


C# - How To Set Color To DataGridView Rows In C# [with source code]

https://www.youtube.com/watch?v=blx4DL9j39U
0
1 / 1 / 0
Регистрация: 18.03.2016
Сообщений: 53
16.08.2016, 16:06  [ТС]
Видео смотрел!
Код брал с видео и у меня не получилось!
0
1 / 1 / 1
Регистрация: 12.08.2016
Сообщений: 20
16.08.2016, 17:05
Лучший ответ Сообщение было отмечено Leha_Noisy как решение

Решение

По крайней мере, у меня работает вот такой код:

C#
1
2
3
4
5
6
7
8
9
10
        private void fireDataGridView_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
           DataGridView grid = sender as DataGridView;
 
           if (grid != null)
           {
               if (fireDataGridView[8, e.RowIndex].Value.ToString() == "")
                   grid.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Blue;
           }
        }
fireDataGridView[8, e.RowIndex], здесь 8 - номер столбца.


взял вот здесь (предпоследнее сообщение)
Datagridview - формирование цвета строки по значению параметра - C#
Datagridview - формирование цвета строки по значению параметра
1
1 / 1 / 0
Регистрация: 18.03.2016
Сообщений: 53
16.08.2016, 18:37  [ТС]
Спасибо большое, все работает!
В моем случае:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void AllBaseDataaGrid_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            DataGridView grid = sender as DataGridView;
 
            if (grid != null)
            {
                if (AllBaseDataaGrid[13, e.RowIndex].Value.ToString() == "выполнено")
                    grid.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.SpringGreen;
            }
            if (grid != null)
            {
                if (AllBaseDataaGrid[13, e.RowIndex].Value.ToString() == "в ремонте")
                    grid.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Yellow;
            }
        }
Добавлено через 41 минуту
Потом правда прога стала ругаться: Ссылка на объект не указывает на экземпляр объекта!
Решил проблему удалением последней пустой строки!

Удаление пустой строки в DataGridView
Удаление пустой строки в DataGridView - C#
0
1 / 1 / 1
Регистрация: 12.08.2016
Сообщений: 20
16.08.2016, 19:24
Да-да, Leha Noisy, хорошо что отметили данный факт!

Возможно еще сделать так:

if( e.RowIndex < (AllBaseDataaGrid.RowCount - 1) )
0
16 / 12 / 4
Регистрация: 28.09.2015
Сообщений: 278
12.04.2017, 15:30
не могу понять помчему такой не работает хотя делал по видео описанному ранее
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 private void RowsColor()
        {
 
            try {
                string snameotv="";
                bool vip;
                for (int i = 0; i < dataGridViewPeople.Rows.Count; i++)
                {
                    vip = Convert.ToBoolean(dataGridViewPeople.Rows[i].Cells[11].Value);
                    snameotv =Convert.ToString(dataGridViewPeople.Rows[i].Cells[12].Value);
                    if (vip)
                    {
                        dataGridViewPeople.Rows[i].DefaultCellStyle.BackColor = Color.Green;
 
                    }
                    switch(snameotv){
                        case "отказ":
                            dataGridViewPeople.Rows[i].DefaultCellStyle.BackColor = Color.Red;
                            break;
                    }
                }
                MessageBox.Show(snameotv.ToString());
            
            
            }
            catch { }
        
        }
Добавлено через 6 часов 20 минут
Цитата Сообщение от Leha_Noisy Посмотреть сообщение
private void AllBaseDataaGrid_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
а при использовании этот события форма не виснет ? у меня подвисает и кнопки , поля не прорисовываются (если форму передвинуть или свернуть\развернуть то все нормально отображается)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2017, 15:30
Помогаю со студенческими работами здесь

Скрытие и отображение строк и листов в зависимости от содержания ячейки
В одной определенной ячейке есть число. Нужно чтобы если туда введено &quot;1&quot;, то отображались строки 1-5. Если &quot;2&quot;, то 1-10, если...

Изменение диапазона параметра функции в зависимости от содержания ячейки
Требуется просуммировать несколько ячеек, скажем, A1:A6, пользователь ввел 6 в ячейке B1, например. Если B1 содержит 7, то просуммировать...

Закрасить ячейки определенным цветом в зависимости от содержимого
Здравствуйте. Я не могу разобраться в создании программы. Мне нужно в определённом диапазоне: ячейки с текстовым символами - залить...

Закрасить ячейки DataGridView определенным цветом в зависимости от содержимого
Может кто знает и подскажет! Есть база данных в Accesse которая имеет две таблицы. На форме я сделал DataGridView в которой при нажатии...

Закрасить строку DataGridView в зависимости от условия
доброго времени. у меня такой вопрос. приложение состоит из двух форм. на первой работает таймер, на второй DataGridView. количество строк...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru