1

そのコードで、空のセルのみに色を付けたいと思います。しかし、私はすべてのセルに色を付けています。どこが悪いのか誰か教えてくれませんか..

private void gridView3_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
{
        GridView View = sender as GridView;
        if(e.Column.FieldName == "First Name") 
        {
            string category = View.GetRowCellDisplayText(e.RowHandle, View.Columns["First Name"]);
            if(category != "") 
            {   
                e.CellStyle.BackColor = Color.DeepSkyBlue;
            }
        }
}
4

2 に答える 2

3

一つには、条件が間違っています:

if (category != "")

空ではないセルが色付けされるようにフィルタリングしています。それで、それをString.IsNullOrEmpty(category)最初のものに置き換えます。

次に、DevExpress コントロールを使用しているため、組み込みの条件付き書式を使用できます: http://documentation.devexpress.com/#WindowsForms/CustomDocument759

このようなものかもしれません:

StyleFormatCondition condition1 = new DevExpress.XtraGrid.StyleFormatCondition();
condition1.Appearance.BackColor = Color.DeepSkyBlue;
condition1.Appearance.Options.UseBackColor = true;
condition1.Condition = FormatConditionEnum.Expression;
condition1.Expression = "[First Name] == ''";
gridView1.FormatConditions.Add(condition1);
于 2013-02-05T07:38:18.830 に答える
2

あなたのコードは空でないセルを着色しています(あなたの状態をチェックしてくださいif(category != "")

以下は私にとってはうまくいきます:

private void gridView3_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
{
    GridView View = sender as GridView;
    if (e.Column.FieldName == "First Name" &&
        string.IsNullOrEmpty(View.GetRowCellDisplayText(e.RowHandle, e.Column)))
    {
        e.Appearance.BackColor = Color.DeepSkyBlue;
    }
}
于 2013-02-05T07:39:46.210 に答える