if(retrievalList[i][j].ToString().Equals( retrievalList[i-1][j].ToString()))
{
   DataGridCell dc = new DataGridCell();
   dc.RowNumber=i;
   dc.ColumnNumber=j;
   dgRetrivalList.CurrentCell = dc;
   dgRetrivalList[dc] = DBNull.Value;
}
else
{
   DataGridCell dc = new DataGridCell();
   dc.RowNumber=i;
   dc.ColumnNumber=j;
   dgRetrivalList.CurrentCell = dc;
   dgRetrivalList[dc] = retrievalList[i][j];
}
外面我用两个For loop来跑行和列,但是好像没有作用,还是显示所有的记录,各位有什么好办法吗?
谢谢。

解决方案 »

  1.   

    先直接帮定datagrid,然后在ItemDataBound 事件 判断:if((e.Item.ItemType == ListItemType.Item) ||
                 (e.Item.ItemType == ListItemType.AlternatingItem))
             {
     
               // e.Item.Cells[2].Text
            
             }
      

  2.   

    不如改用ListView显示数据啦!
      

  3.   

    To minajo21:
    我写的windows程序,找不到ItemDataBound事件啊。To:JasonHeung
    不好意思,我还没有用过ListView,因为我的输出是一个比较复杂的表格,包括checkbox和cobobox,用listbox也可以达到同样的效果吗?谢谢
      

  4.   

    可以在dataGrid1的paint事件中判断如果该行某单元值符合要求则画空字符,或前景背景一样
    dataGrid1——Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
    CurrencyManager cr = (CurrencyManager) this.BindingContext[dataGrid1.DataSource,dataGrid1.DataMember]; 
    if(cr.Count==0)
    return;
    int row=0;
    DataView dv=(DataView)dataGrid1.DataSource;
    while(row < cr.Count)
    {
    int v=int.Parse(dv[row]["age"].ToString());
    if(v>40)//判断年龄大于40就改变颜色
    {
    e.Graphics.FillRectangle(new System.Drawing.SolidBrush(Color.Snow),ataGrid1.GetCellBounds(new DataGridCell(row, col)));
    e.Graphics.DrawString("年龄大于四十", dataGrid1.Font, new System.Drawing.SolidBrush(Color.Red),dataGrid1.GetCellBounds(new DataGridCell(row, col)));
    }
    row++; 
    }
    }