2014-12-17 4 views
2

Я хочу, чтобы установить цвет фона для указанной строки в DataGridView .. Моя потребность у меня есть цикл (i=0;i<10;i++) .Inside этот цикл я пишу логику , какКак установить цвет фона для указанной строки в datagridview?

if(i=1) 
{ 
//Want to Set Color For This Specified Row.. 
dataGridView1.SelectedRows[1].DefaultCellStyle.SelectionBackColor = Color.Yellow; 
} 

if(i=1) 
{ 
//Want to Set Color For This Specified Row.. 
dataGridView1.SelectedRows[2].DefaultCellStyle.SelectionBackColor = Color.Blue; 
} 


if(i=1) 
{ 
//Want to Set Color For This Specified Row.. 
dataGridView1.SelectedRows[3].DefaultCellStyle.SelectionBackColor = Color.Red; 
} 

Но я не получил ожидаемый o/p. Надеюсь, я пойму, что мне нужно. Пожалуйста помогите.

+0

http://stackoverflow.com/a/2193018/815938 – kennyzx

ответ

2

Вместо того, чтобы использовать SelectedRows свойство DataGridView можно использовать следующим образом

dataGridView1.Rows[1].DefaultCellStyle.ForeColor = Color.Red; 

Поскольку свойство SelectedRows будет возвращать строки, если строки (строки) выбраны только пользователем, если нет r ows выбраны, тогда ваш код будет генерировать исключение.

EDIT:

Для вашего сомнения здесь привожу пример кода, надеюсь, что это поможет.

for (int i = 0; i < 10; i++) 
{ 
    if (dataGridView1.Rows.Count > i) 
    { 
     if (i == 1) 
     dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Red; 
     else if (i == 2) 
     dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Blue; 
     else 
     dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Green; 
    } 
} 
+0

Привет! u Определенно гений :) Большое спасибо yar .. –

1

Вы можете обрабатывать различные события вашего DataGrid и установить стиль ячейки

Вот пример из related question

private void dgvStatus_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    if (e.ColumnIndex != color.Index) 
     return; 

    e.CellStyle.BackColor = Color.Red; 
}