0

hi,

i would like to change the row color in a data grid view at runtime.

i made this code but it didn't work

foreach (DataGridViewRow dgvr in dgvReservations.Rows)
            {
                string status = dgvr.Cells[10].Value.ToString() ;
                if (status == "Canceled")
                {
                     dgvr.DefaultCellStyle.BackColor = Color.Red;
                }
            }

not even this worked

for(int i = 0; i<dgvReservations.RowCount; i++)
               {
                  string status = dgvReservations.Rows[i].Cells[10].Value.ToString();
                  if (status  == "Canceled")
                  {
                      dgvReservations.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.Red;
                  }
              }
5
Contributors
10
Replies
29
Views
5 Years
Discussion Span
Last Post by ian rey
0

yes i done it ! but it didn't work. i worked normally but the colors doesn't change ..

0

Check out this code. The 1st part is only a simple dgv population. Then is the code which color the rows:

public Form1()
        {
            InitializeComponent();
            dataGridView1.Columns.Add("col1", "column 1");
            dataGridView1.Columns.Add("col2", "column 2");
            dataGridView1.Rows.Add(1, "Canceled");
            dataGridView1.Rows.Add(2, "Ok");
            dataGridView1.Rows.Add(3, "Canceled");
            dataGridView1.Rows.Add(4, "Canceled");
            dataGridView1.Rows.Add(5, "Ok");

            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (dataGridView1["col2", row.Index].Value != null)
                    if (dataGridView1["col2", row.Index].Value.ToString() == "Canceled")
                        row.DefaultCellStyle.BackColor = Color.Red;
            }
        }

It works.

0

hi, can it be the alternating row color in design effecting this problem ?? since the code those not throw an exception but it will remain the same color as it is

0

Nope, I have the following and it works fine.

public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();          
            dataGridView1.Rows.Add(5);
            // already added 2 columns in the designer
            this.dataGridView1.RowsDefaultCellStyle.BackColor = Color.Bisque;
            this.dataGridView1.AlternatingRowsDefaultCellStyle.BackColor =
                Color.Beige;        
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.Rows[0].DefaultCellStyle.BackColor = Color.Red; //works!
        }
    }
0

thanks ! i made it to work by making the method in form activation instead on form load !!

thanks alot

0

Hi Guys! Last example work my project! And also i need change color by parametr ,for example if data old --this color may red, if new may green or other please help? Thanks beforly!

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.