if (Convert.ToDateTime(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value== DateTime.Now.Date)
                    {
                                            }
里面怎么写,在线等,有答案马上结贴给分,谢谢!

解决方案 »

  1.   

    那你这一列最好用 String 类型的。然后日期用前几位比较,比如是 "yyyy/MM/dd HH:mm:ss"
    就比较.SubString(0, 10) == DateTime.Now.ToString("yyyy/MM/dd")
      

  2.   

    你的代码不对吧,时间不能直接比DateTime dt=Convert.ToDateTime(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
    TimeSpan ts=dt-DateTime.Now.Date;if(ts.days==0)
    {
    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value=datetime.now.tostring("hh:mm:ss");
    }
    else
    {
    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value=dt.tostring("yyyy-MM-dd");
    }注意大小写,我都写成小写了
      

  3.   


    DateTime time1=Convert.ToDateTime(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
    DateTime time2=DateTime.Now;
    string showStr="";
    showStr=time1.ToShortDateString()==time2.ToShortDateString()?time1.ToString("hh:mm:ss"):time1.ToString("yyyy-MM-dd");
      

  4.   

    2楼,我就是按照你的思路做的,但好像问题出在dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = hjshijian.ToString("hh:mm:ss");这句话
      

  5.   

    当前线程处于堆栈溢出状态,因此无法计算表达式的值。
    我是把这个判断放在 
    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    里面的
    跟踪时发现一旦执行这个就重新回到这个函数了
      

  6.   

    CellFormatting在这个事件中是对的,你有没有判断是哪一列啊

    if(e.ColumnIndex==2)
    这个一定要不行你把这块代码贴出来
      

  7.   

    有的,是这句话
    if (dataGridView1.Columns[e.ColumnIndex].Name == "shijian")
      

  8.   

    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                if (dataGridView1.Columns[e.ColumnIndex].Name == "shijian")
                {
                    if (Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value) != "")
                    {
                        DateTime hjshijian = Convert.ToDateTime(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);                    if (hjshijian <= DateTime.Now.AddHours(1))
                        {
                            if (hjshijian <= DateTime.Now.AddHours(0.5))
                            {
                                dataGridView1.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Red;
                            }
                            else
                            {
                                dataGridView1.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Blue;
                            }
                        }
                        else
                        {
                            dataGridView1.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Black;
                        }
                    }
                }
                DateTime hjsj = Convert.ToDateTime(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
                TimeSpan bj = hjsj - DateTime.Now.Date;
                if (bj.Days == 0)
                {
                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = hjsj.ToString("hh:mm:ss");
                }
                else
                {
                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = hjsj.ToString("yyyy-MM-dd");
                }
            }
    如果不加这个判断是没有问题的,一小时以内蓝色,半小时红色,其他黑色
      

  9.   

    最好还是用e.CellIndex索引判断,名字有时会和我们想的不一样。DateTime hjsj = Convert.ToDateTime(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
      TimeSpan bj = hjsj - DateTime.Now.Date;
      if (bj.Days == 0)
      {
      dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = hjsj.ToString("hh:mm:ss");
      }
      else
      {
      dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = hjsj.ToString("yyyy-MM-dd");
      }这块代码你没有放到判断中啊!是对同一列的处理吧
      

  10.   

    DateTime dt2 = Convert.ToDateTime("2011-4-29 11:11:11");//代表gridview的值
            DateTime dt1 = DateTime.Now;
            TimeSpan ts = dt2.Date - dt1.Date;        if (ts.Days==0)
            {
                this.lbl2.Text = dt2.ToString("hh:mm:ss");
            }
            else
            {
                this.lbl2.Text = dt2.ToString("yyyy-MM-dd");
            }
    lbl2代表的是gridview中显示的列
      

  11.   

    查看了一下,系统自动设定格式是这样一句话
    dataGridViewCellStyle3.Format = "d";
    于是将判断改为:
                DateTime hjsj = Convert.ToDateTime(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
                TimeSpan bj = hjsj - DateTime.Now.Date;
                if (bj.Days == 0)
                {
                    DataGridViewCellStyle hjStyle = new DataGridViewCellStyle();
                    hjStyle.Format = "t";
                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style = hjStyle;
                }
    成功