1 / 1 / 0
Регистрация: 18.03.2016
Сообщений: 53

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

16.08.2016, 12:23. Показов 3027. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru