DevComponents DotNetBar SuperGridControl:如何仅更改1行的背景颜色

时间:2015-08-04 16:21:13

标签: c# winforms dotnetbar

正如主题所示,我的Windows窗体上有一个DevComponents DotNetBar SuperGridControl(SGC)。在那个SGC中,我有交替的行颜色。 SGC中的一列具有布尔值(数据中的启用/禁用标志)。

我想改变JUST用false布尔值标记的行的背景颜色。

我尝试用来执行此任务的代码:

    private void dgvSearchResults_PostRenderRow(object sender, GridPostRenderRowEventArgs e)
    {
        if (e.RenderParts != RenderParts.Background) { return; }

        var row = (GridRow)e.GridRow;

        if (((CustomerDTO)row.DataItem).Disabled)
        {
            //Try to figure out how to set the row color here.
        }
    }

令人讨厌的部分是这个代码显然对SGC中的每一行运行两次。但是,除了这一部分之外,当我进入.Disabled控制语句时,似乎无法改变我所在行的行颜色。

我喜欢任何提示或建议。

1 个答案:

答案 0 :(得分:0)

所以我实际上确实为这个问题做了一个答案,事实证明这很简单。我只是在调用错误的事件处理程序。以下代码执行了我在最初的问题中尝试的确切任务:

    private void dgvSearchResults_GetRowCellStyle(object sender, GridGetRowCellStyleEventArgs e)
    {
        if (e.StyleType != StyleType.Default) { return; }

        var row = e.GridRow as GridRow;
        if (row == null) { return; }

        if (((CustomerDTO)row.DataItem).Disabled) {
            e.Style.Background = new Background(Color.Tomato);
        }
    }