1,105,386 Community Members

change row colour in datagridview based on some condition

Member Avatar
Rachna0309
Light Poster
36 posts since Nov 2012
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

I have datagridview which is populated with 3 columns partno,locality,houseno. Initially my row colour would be say light blue. Now what i want is whenever houseno changes in row,its row colour should be changed to say grey. That means whenever houseno changes,these two colours should be alternately applied to rows of grid.
For example,values that would be populated in houseno column will be
0
0
1
1
2
etc.Now for row with houseno 0 will have row colour as light blue ,for houseno 1 will have row colour grey,for houseno 2 again light blue and so on.
Can any1 help me with this.
Thanks in advance.

Member Avatar
adam_k
Veteran Poster
1,056 posts since Jun 2011
Reputation Points: 239 [?]
Q&As Helped to Solve: 212 [?]
Skill Endorsements: 17 [?]
 
0
 

Try something like:

    Dim last_value As String = ""
    Dim last_color As Color = Color.LightBlue

    If DataGridView1.Rows.Count > 0 Then
        For Each row In DataGridView1.Rows

            If DataGridView1.Item("houseno", row.index).Value <> last_value Then
                If last_color = Color.LightBlue Then
                    DataGridView1.Rows(row.index).DefaultCellStyle.BackColor = Color.LightGray
                Else
                    DataGridView1.Rows(row.index).DefaultCellStyle.BackColor = Color.LightBlue
                End If
            Else
                DataGridView1.Rows(row.index).DefaultCellStyle.BackColor = last_color
            End If

            If DataGridView1.Rows(row.index).IsNewRow = False Then
                last_value = DataGridView1.Item("houseno", row.index).Value.ToString
                last_color = DataGridView1.Rows(row.index).DefaultCellStyle.BackColor
            End If

        Next

    End If
Member Avatar
Reverend Jim
Noli mentula
5,450 posts since Aug 2010
Reputation Points: 746 [?]
Q&As Helped to Solve: 653 [?]
Skill Endorsements: 51 [?]
Moderator
Featured
 
0
 

Make all cells in row 1 blue.

For Each c As DataGridViewCell In DataGridView1.Rows(1).Cells
        c.Style.BackColor = Color.Blue
Next
Member Avatar
Rachna0309
Light Poster
36 posts since Nov 2012
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

Thanks..problem is solved.

Question Answered as of 1 Year Ago by Reverend Jim and adam_k
You
This question has already been solved: Start a new discussion instead
Post:
Start New Discussion
Tags Related to this Article