Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Serjey
1 / 1 / 0
Регистрация: 10.03.2016
Сообщений: 70
1

Изменить цвет строк в DataGridView

05.04.2016, 16:09. Просмотров 1380. Ответов 11
Метки нет (Все метки)

Здраствуйте. Я вывожу данные из бд sql server в datagridview с помощью такого запроса:
C#
1
2
3
4
5
6
7
8
9
 string connectionString = "Data Source=Moiserv;Initial Catalog=bd;Integrated Security=True";
                string sql = "SELECT * FROM tableprobvtor";
                SqlConnection connection = new SqlConnection(connectionString);
                SqlDataAdapter dataadapter = new SqlDataAdapter(sql, connection);
                DataTable ds = new DataTable();
                connection.Open();
                dataadapter.Fill(ds);
                connection.Close();
                dataGridView2.DataSource = ds;
Вот сама таблица:
Изменить цвет строк в DataGridView
. Подскажите как мне сделать, чтобы в моем datagridview строки подкрашивались красным цветом, если значение столбца pole1 == 200. То есть чтобы в datagridview это выглядело так:
Изменить цвет строк в DataGridView
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2016, 16:09
Ответы с готовыми решениями:

Как изменить цвет фона для заголовков у datagridView
Сабж

Изменить цвет линии
using System; using System.Collections.Generic; using System.ComponentModel;...

изменить цвет строки в GridViev
DevExpress.XtraGrid.Views.Grid.GridView вот в таком элементе хочется...

изменить цвет строки во вьюшке
есть грид, нужно строчку по вьюшке по условию выделить другим цветом ...

Как программно изменить цвет ячейки и ширину столбцов в Excel
Здравствуйте, как можно программно изменить цвет ячейки в Excel? Я использую...

11
Даценд
Модератор
Эксперт .NET
4330 / 4047 / 2676
Регистрация: 20.04.2015
Сообщений: 7,342
05.04.2016, 16:26 2
После заполнения вызывайте метод:
C#
1
2
3
4
5
6
7
8
private void PaintRows()
{
    foreach (DataGridViewRow row in dataGridView2.Rows)
    {
        if (int.Parse(row.Cells[3].Value.ToString()) == 200)
            row.DefaultCellStyle.BackColor = Color.Red;
    }
}
0
wm_leviathan
196 / 198 / 69
Регистрация: 12.01.2011
Сообщений: 699
Завершенные тесты: 2
05.04.2016, 16:32 3
C#
1
2
3
4
5
6
7
8
9
10
11
public void paintRed(DataGridView dgv, DataGridViewRowPrePaintEventArgs e, string nameCell)
        {
            if (dgv.Rows[e.RowIndex].Cells[nameCell].Value == 200)
            {
                dgv.Rows[e.RowIndex].Cells[nameCell].Style.BackColor = Color.Red;
            }
            else
            {
                dgv.Rows[e.RowIndex].Cells[nameCell].Style.BackColor = Color.Empty;
            }            
        }
в событии грида
C#
1
2
3
4
private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            paintError(_dgvSetClothes, e, "имя столбца");
        }
имя столбца - того по которому проверяешь.
для всей строки
C#
1
dgv.Rows[e.RowIndex].DefaultCellStyle.BackColor
Добавлено через 2 минуты
Даценд,
Цитата Сообщение от Даценд Посмотреть сообщение
Value.ToString()) == 200
строка и число
0
Даценд
Модератор
Эксперт .NET
4330 / 4047 / 2676
Регистрация: 20.04.2015
Сообщений: 7,342
05.04.2016, 16:44 4
Цитата Сообщение от wm_leviathan Посмотреть сообщение
строка и число
Цитата Сообщение от Даценд Посмотреть сообщение
C#
1
if (int.Parse(row.Cells[3].Value.ToString()) == 200)
число и число
0
wm_leviathan
196 / 198 / 69
Регистрация: 12.01.2011
Сообщений: 699
Завершенные тесты: 2
05.04.2016, 16:50 5
Цитата Сообщение от Даценд Посмотреть сообщение
число и число
Извеняюсь int.Parse не увидел
0
Serjey
1 / 1 / 0
Регистрация: 10.03.2016
Сообщений: 70
05.04.2016, 17:23  [ТС] 6
Даценд, как правильно вызвать этот метод?
0
Даценд
Модератор
Эксперт .NET
4330 / 4047 / 2676
Регистрация: 20.04.2015
Сообщений: 7,342
05.04.2016, 19:17 7
Serjey,
после 9-й строки кода из первого сообщения:
C#
1
PaintRows();
0
Serjey
1 / 1 / 0
Регистрация: 10.03.2016
Сообщений: 70
06.04.2016, 10:03  [ТС] 8
Даценд, Ошибка вылетает, "ссылка на объект не указывает на экземпляр объекта".
0
Даценд
Модератор
Эксперт .NET
4330 / 4047 / 2676
Регистрация: 20.04.2015
Сообщений: 7,342
06.04.2016, 10:16 9
Serjey,
Это из-за пустой новой строки. Можно установить для dataGridView2 свойство AllowUserToAddRows = false.
Или сделать чтобы строка с пустым значением поля или с текстом просто пропускалась:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void PaintRows()
{
    foreach (DataGridViewRow row in dataGridView2.Rows)
    {
        try
        {
            if (int.Parse(row.Cells[3].Value.ToString()) == 200)
                row.DefaultCellStyle.BackColor = Color.Red;
        }
        catch 
        {
            // здесь можно отреагировать на неправильные данные, а можно ничего не делать
        }
    }
}
0
Serjey
1 / 1 / 0
Регистрация: 10.03.2016
Сообщений: 70
06.04.2016, 10:33  [ТС] 10
Даценд, Установил свойство и исключения добавил, ошибки нету, но строки не красятся все-равно(
0
Даценд
Модератор
Эксперт .NET
4330 / 4047 / 2676
Регистрация: 20.04.2015
Сообщений: 7,342
06.04.2016, 10:44 11
Лучший ответ Сообщение было отмечено Serjey как решение

Решение

Serjey,
вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void button1_Click(object sender, EventArgs e)
{
    PaintRows();
}
 
private void PaintRows()
{
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        try
        {
            if (int.Parse(row.Cells[3].Value.ToString()) == 200)
                row.DefaultCellStyle.BackColor = Color.Red;
            else
                row.DefaultCellStyle.BackColor = Color.White;
        }
        catch 
        {
            // здесь можно отреагировать на неправильные данные, а можно ничего не делать
        }
    }
}
Ниже результат.
Что я делаю не так?
1
Миниатюры
Изменить цвет строк в DataGridView  
Serjey
1 / 1 / 0
Регистрация: 10.03.2016
Сообщений: 70
06.04.2016, 11:06  [ТС] 12
Даценд, Все, я понял свою ошибку, все заработало, спасибо!!
0
06.04.2016, 11:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2016, 11:06

Цвет строк в datatable
Вывожу данные в table, но никак не могу сделать чтобы записи с сегодняшней...

Визуально изменить данные в dataGridView
Здравствуйте. Нужна помощь. В моей программе нужно добавить такую как бы...

Не могу изменить поля в DataGridView
Имеется datagridview заполненный данным образом class Description_tables...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru