PC&웹/VS프로그래밍

C# DevExpress Grid 행 색상 지정

Simulz™ 2023. 5. 1. 23:40
반응형

MMEX의 거래 테이블에서 색상 지정된 레코드는 행의 배경을 색으로 보여준다.

이렇게 보여주는 것을 C# DevExpress Grid에서 따라해보자.

요래~

GridView 에서 RowStyle 이벤트를 사용한다.

private void gridView1_RowStyle(object sender, RowStyleEventArgs e)
{
    GridView view = sender as GridView;
    if(e.RowHandle >= 0)
    {
        int followUpID = view.GetRowCellDisplayText(e.RowHandle, view.Columns["FOLLOWUPID"]).ToInt();

        Color userColor = followUpID switch
        {
            1 => Color.FromArgb(246, 144, 144),
            2 => Color.FromArgb(229, 196, 146),
            3 => Color.FromArgb(245, 237, 149),
            4 => Color.FromArgb(186, 226, 185),
            5 => Color.FromArgb(135, 190, 219),
            6 => Color.FromArgb(172, 167, 239),
            7 => Color.FromArgb(212, 138, 215),
            _ => Color.Transparent,
        };
        e.Appearance.BackColor = userColor;
    }
}

끝.

sender는 GridView를 나타내고, e는 행의 스타일을 나타낸다.

행이 있을 때만 적용해야 하므로, if(e.RowHandle >= 0) 조건 추가

레코드의 특정 필드의 값에 따라 색을 지정해야 하므로 GridView의 GetRowCellDisplayText() 또는 GetRowCellValue() 메서드를 사용해서 매 행의 특정 필드의 값을 가져온다.

MMEX의 색상 필드 값은 숫자형을 사용하므로 Convert.ToInt32()를 사용하고, switch 문법을 사용해서 숫자별로 Color를 지정하면 된다. 기본값은 투명.

 

반응형