格式化Datagridview基于特定日期的颜色 [英] Format Datagridview Colours based on Specific Date

查看:75
本文介绍了格式化Datagridview基于特定日期的颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好

我正在尝试突出显示今天为Red的所有行,其余行为绿色。

I'm trying to Highlight all rows in a gridview that is for today to Red, and the rest of the rows Green.

截止日期是在gridview的Columns [2]中,但是如果有更好的方法,有人可以告诉我吗?

The deadline did is in Columns[2] of the gridview, but getting cast error, can somebody please tell me if there is a better way of doing this?

       private void PopulateHiPriority()
        {
            DataTable dtb = new DataTable();
            cmd.Connection = conn1;
            String Admin = "SELECT * FROM[WFEapp].[dbo].[vPriorityTasks]";
            String Operator = "SELECT * FROM[WFEapp].[dbo].[vPriorityTasks] where AllocatedTo =" + CurrentUserID + " or UserID=" + CurrentUserID + " or ResourceReq =" + CurrentUserID + "";            
            if (UserType == 1)
            {
                cmd.CommandText = Admin;               
            }
            else
            {
                cmd.CommandText = Operator;               
            }
            SqlDataAdapter adp = new SqlDataAdapter(cmd);

            try
            {
                adp.Fill(dtb);
                dgHiPriority.DataSource = dtb;
                dgHiPriority.DataMember = dtb.TableName;
                dgHiPriority.Columns[0].Visible = false;
                dgHiPriority.Columns[1].Visible = false;
                dgHiPriority.Columns[6].Visible = false;
                dgHiPriority.Columns[8].Visible = false;
                dgHiPriority.Columns[10].Visible = false;
                dgHiPriority.Columns[12].Visible = false;
                DateTime datet = DateTime.Today;
                foreach (DataGridView MyRow in dgHiPriority.Rows)    
                    
                if (Convert.ToDateTime(MyRow.Columns[2]) < datet )
                {
                        dgHiPriority.DefaultCellStyle.BackColor = Color.Green;
                }  
                else
                {
                        dgHiPriority.DefaultCellStyle.BackColor = Color.Red;
                }         
               
                             
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

        }

labjac

推荐答案

您好labjac,

Hi labjac,

感谢您在此发帖。

对于您的问题,请尝试以下代码。请保持datagridview中用于比较的值不为空。

For your question, please try the following code. Please keep the value you used to compare in datagridview not null.

 foreach (DataGridViewRow MyRow in dgHiPriority.Rows)    
                    
                if (Convert.ToDateTime(MyRow.Cells[2].Value) < datet )
                {
                        dgHiPriority.DefaultCellStyle.BackColor = Color.Green;
                }  
                else
                {
                        dgHiPriority.DefaultCellStyle.BackColor = Color.Red;
                }     

我举一个简单的例子进行测试。效果很好。

I make a simple example to test. It works well.

我希望这会有所帮助。

最好的问候,

Wendy


这篇关于格式化Datagridview基于特定日期的颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆