參見
如何改变DataGrid的背景色 
http://blog.csdn.net/tjvictor/archive/2007/01/22/1489972.aspx

解决方案 »

  1.   

    //继承DataGridTextBoxColumn
    public class DataGridColoredTextBoxColumn : DataGridTextBoxColumn
    {
    protected override void Paint(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, System.Windows.Forms.CurrencyManager source, int rowNum, System.Drawing.Brush backBrush, System.Drawing.Brush foreBrush, bool alignToRight)
    {
    try
    {
    object o = this.GetColumnValueAtRow(source, rowNum);
    if( o!= null)
    {
    DateTime dt = (DateTime)o;
    if(dt < DateTime.Now) 
    {
    foreBrush = new SolidBrush(Color.Red);
    }
    }
    }
    finally
    {
    base.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight);
    }
    }
    }
      

  2.   

    //自定义datagrid样式
    private void AdjustColumnWidthCls()
    {
    System.Windows.Forms.DataGridTableStyle myStyle=new DataGridTableStyle();
    myStyle.MappingName = "xxxxxx"; DataGridColoredTextBoxColumn columnStyle3=new DataGridColoredTextBoxColumn();
    columnStyle3.MappingName="Date";
    columnStyle3.Format= "";
    columnStyle3.FormatInfo = null;
    columnStyle3.HeaderText= "日期";
    columnStyle3.Width=70;
    myStyle.GridColumnStyles.Add(columnStyle3); DataGridTextBoxColumn columnStyle4=new DataGridTextBoxColumn();
    columnStyle4.MappingName="Dow";
    columnStyle4.HeaderText= "星期";
    columnStyle4.Width=30;
    myStyle.GridColumnStyles.Add(columnStyle4); myStyle.BackColor = Color.LightGoldenrodYellow;
    myStyle.HeaderBackColor = Color.Honeydew;
    myStyle.GridLineColor = Color.DarkOrange; mydg.TableStyles.Add(myStyle);
    }
      

  3.   

    //自定义datagrid样式
    private void AdjustColumnWidthCls()
    {
    System.Windows.Forms.DataGridTableStyle myStyle=new DataGridTableStyle();
    myStyle.MappingName = "xxxxxx"; DataGridColoredTextBoxColumn columnStyle3=new DataGridColoredTextBoxColumn();
    columnStyle3.MappingName="Date";
    columnStyle3.Format= "";
    columnStyle3.FormatInfo = null;
    columnStyle3.HeaderText= "日期";
    columnStyle3.Width=70;
    myStyle.GridColumnStyles.Add(columnStyle3); DataGridTextBoxColumn columnStyle4=new DataGridTextBoxColumn();
    columnStyle4.MappingName="Dow";
    columnStyle4.HeaderText= "星期";
    columnStyle4.Width=30;
    myStyle.GridColumnStyles.Add(columnStyle4); myStyle.BackColor = Color.LightGoldenrodYellow;
    myStyle.HeaderBackColor = Color.Honeydew;
    myStyle.GridLineColor = Color.DarkOrange; mydg.TableStyles.Add(myStyle);
    }
      

  4.   

    先谢谢  colaxu(飞翔)  
    这正是我急需的
      

  5.   

    学习中... 欢迎加入ASP.NET(C#)学习交流QQ群号:32801051