2009-10-07 3 views
1

В окнах Применения Я хочу настроить цвета различных ячеек в DataGridView на основе диапазона значенийКак я могу сделать условное форматирование в datgridview в C#?

Пусть значения 1..22: цвет ячейки должен быть зеленым значения 23,30: цвет ячейки должен быть серым значение> 30: цвет ячейки должен быть красным

как я могу это сделать..пожалуйста, предложите фрагмент кода? Как сделать условное форматирование в datgridview в C#?

+0

Пожалуйста, посмотрите на это ответ, который использует CellOnFormat HTTP://stackoverflow.com/a/4067612/581414 – Ruskin

ответ

1

Вы можете использовать объект DataGridViewCellStyle на основе различных условий

DataGridViewCellStyle cellstyle = new DataGridViewCellStyle(); 
cellstyle.BackColor = Color.Black; 
cellstyle.ForeColor = Color.Yellow 
dgvAllData.Rows[5].Cells[2].Style = cellstyle; 
dgvAllData.Rows[3].Cells[2].Style = cellstyle; 
dgvAllData.Rows[6].Cells[2].Style = cellstyle; 
1

См. Мой ответ за Windowsforms: How to draw lines/bars on a DataGridView?. Вопрос дает ответ в VB.NET (должно быть достаточно легко конвертировать в C#).

Обновлено в соответствии Question

Пример:

private void dataGridView1_CellPainting(object sender, System.Windows.Forms.DataGridViewCellPaintingEventArgs e) 
{ 
    if (e.Value > 0 && e.Value <= 22) 
    { 
     e.Graphics.FillRectangle(Color.Green, e.CellBounds); 
    } 
    else if (e.Value > 22 && e.Value <= 30) 
    { 
     e.Graphics.FillRectangle(Color.Grey, e.CellBounds); 
    } 
    else if (e.Value > 30) 
    { 
     e.Graphics.FillRectangle(Color.Red, e.CellBounds); 
    } 
    else 
    { 
     e.Graphics.FillRectangle(Color.White, e.CellBounds); 
    } 
} 
Смежные вопросы