cell fromtating of DataGridView need to compare two values from two cells same row, c#

Posted on 2011-09-28
Medium Priority
Last Modified: 2012-05-12
I have a win form that has a gridview, and I need to change the color of the cell, based on itslef and a different cell.
If you look at the code below it works fine when changign the color of the cell besad on the current cells value.
But I need to be able to compare both values and then change the cell color.

The position of the colums can change but not the name.

        private void ECCN_CellFormatting(DataGridViewCellFormattingEventArgs ee, string case_str)

            switch (case_str)
                case "Y": ee.CellStyle.BackColor = Color.LawnGreen; break;
                case "N": ee.CellStyle.BackColor = Color.Red; break;
                case "0": ee.CellStyle.BackColor = Color.Red; ee.CellStyle.ForeColor = Color.Yellow; break;
                default: break;

        private void dataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs ee)

            switch (dataGridView1.Columns[ee.ColumnIndex].Name)
                case "eccn_available": ECCN_CellFormatting(ee, (string)ee.Value); break;
                case "eccn_value": ECCN_CellFormatting(ee, (string)ee.Value); break;
                default: break;

these methods are called by :
        public void InitializeGrid(DataGridView lv_StockCheckdataGridView
                                  ,string GridViewName)

            lv_StockCheckdataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            lv_StockCheckdataGridView.ContextMenuStrip = this.contextMenuStrip1;
            lv_StockCheckdataGridView.AllowUserToAddRows = false;
            lv_StockCheckdataGridView.AllowUserToDeleteRows = false;
            lv_StockCheckdataGridView.AllowUserToOrderColumns = true;
            lv_StockCheckdataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                        | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));
            lv_StockCheckdataGridView.Size = new System.Drawing.Size(1074, 604);
            lv_StockCheckdataGridView.TabIndex = 5;
            lv_StockCheckdataGridView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.dataGridView1_MouseDown);
            lv_StockCheckdataGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.dataGridView_CellFormatting);
            lv_StockCheckdataGridView.Location = new System.Drawing.Point(12, 43);
            lv_StockCheckdataGridView.Name = GridViewName;
            lv_StockCheckdataGridView.ReadOnly = true;
            lv_StockCheckdataGridView.AllowUserToResizeColumns = true;


I need a way to look at all the values for the rows I have just populated in the grid and
Question by:Jayesh Acharya
LVL 11

Accepted Solution

Sudhakar Pulivarthi earned 2000 total points
ID: 36812654

Each row in the grid has cells to hold the data. So u can verify the cells in the row which u want before calling the actual Formatting as shown below.

Here i am checking the values in the current cell with the first cell in my row when they are equal then i call the method in the switch.

 private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs ee)
if (ee.RowIndex > -1)
                DataGridViewRow row = dataGridView1.Rows[ee.RowIndex];

                switch (dataGridView1.Columns[ee.ColumnIndex].Name)
                    case "eccn_available":

                        if (Convert.ToString(ee.Value).Equals(Convert.ToString(row.Cells[0].Value)))
                            ECCN_CellFormatting(ee, (string)ee.Value);
                    case "eccn_value":
                        ECCN_CellFormatting(ee, (string)ee.Value);
                    default: break;

Author Closing Comment

by:Jayesh Acharya
ID: 36962867
I have been pulled away from this project at the moment, so I can confirm the result from the solution, but I am going to give you the points and assume for now that the solution works, thanks Jay

Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

This article introduced a TextBox that supports transparent background.   Introduction TextBox is the most widely used control component in GUI design. Most GUI controls do not support transparent background and more or less do not have the…
High user turnover can cause old/redundant user data to consume valuable space. UserResourceCleanup was developed to address this by automatically deleting user folders when the user account is deleted.
Watch the video to know how one can repair corrupt Exchange OST file effortlessly and convert OST emails to MS Outlook PST file format by using Kernel for OST to PST converter tool. It can convert OST to MSG, MBOX, EML to access them. It can migrate…
When you have multiple client accounts to manage, it often feels like there aren’t enough hours in the day. With too many applications to juggle, you can’t focus on your clients, much less your growing to-do list. But that doesn’t have to be the cas…

597 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question