为空单元着色不是所有单元格

时间:2013-02-01 13:25:51

标签: c# devexpress

  

可能重复:
  Show message in empty cells in GridView

通过该代码我得到所有细胞着色 我只需要空的..有人可以注意到我的错(对不起,我是C#的新手)

    private void simpleButton1_Click(object sender, System.EventArgs e)
    {

        string[] msg = new string[60];
        string[] error = new string[400];
        for (int i = 0; i < gridView3.RowCount ; i++)
        {
            System.Data.DataRow Rows = gridView3.GetDataRow(i);
            string cellvalue = Rows[0].ToString();
            if (cellvalue == "")
            {
                msg[0] = "Missing 'First Name'";
                error[i] = msg[0] + " - ";  
                gridView3.CustomDrawCell += new RowCellCustomDrawEventHandler(gridView3_CustomDrawCell);

            }
        }
    }
    private void gridView3_CustomDrawCell_1(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
    {
        e.Style.BackColor = Color.LightSteelBlue;
    }

顺便说一下,这个网格是从Excel导入的

3 个答案:

答案 0 :(得分:0)

嗯,我认为你还需要循环它的细胞,即

foreach (GridViewRow row in gridView3.Rows)
{
  foreach (GridViewCell cell in row.Cells)
  {
    if (cell.Text == "")
    {
     //Do stuff here color etc
    }
  }
}

一旦有权访问CELL对象,就可以在那里设置颜色,即(System.Drawing命名空间)

cell.BackColor = Color.Green

答案 1 :(得分:0)

你可以尝试类似的东西 String.IsNullOrEmpty(cellvalue) 如果是真的那么就做你的事。

如上所述,您可能希望首先遍历单元格

答案 2 :(得分:0)

您只需要注册一次网格事件,而不是在循环中注册 对于细胞着色,请使用RowCellStyle事件。

Customizing Appearances of Individual Rows and Cells help topic