I have a Devexpress Xtragrid, with in which I grouped rows based on a particular column. I have given Dark blue back color to the Group and set ShowGroupExpandCollpaseButton as false as well. In the left most part of each child rows in the grid is displaying the color I set to the Group back color. Is there any way to remove this color?

enter image description here

有帮助吗?

解决方案

To accomplish this task, please remove the BackColor from the GroupRow appearance. Then use the CustomDrawGroupRow event to highlight the group row content as you need:

    // 1) remove GroupRow style
    //gridView1.Appearance.GroupRow.BackColor = Color.Blue;

    gridView1.OptionsView.ShowGroupExpandCollapseButtons = false;

    // 2) use the CusomDrawGroupRow
    gridView1.CustomDrawGroupRow += gridView1_CustomDrawGroupRow;
}

void gridView1_CustomDrawGroupRow(object sender, RowObjectCustomDrawEventArgs e) {
    GridView gridView = sender as GridView;
    GridGroupRowInfo groupRowInfo = e.Info as GridGroupRowInfo;
    string groupRowText = gridView.GetGroupRowDisplayText(e.RowHandle);
    int textStart = groupRowInfo.DataBounds.Left + 4;
    Rectangle groupRowTextBounds = new Rectangle(
            textStart,
            groupRowInfo.Bounds.Top,
            groupRowInfo.Bounds.Right - textStart,
            groupRowInfo.Bounds.Height
        );
    e.Cache.FillRectangle(Brushes.Blue, e.Bounds); // draw blue backgrownd
    e.Appearance.DrawString(e.Cache, groupRowText, groupRowTextBounds);
    e.Handled = true;
}

其他提示

You should be able to hide the group from the view by setting as follows:

 this.gridView1.OptionsView.ShowGroupedColumns = false;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top