개발(IT)/DevExpress(WinForm)

[GridView] CustomDrawColumnHeader 이벤트 헤더(Header) 꾸미기

isony 2023. 8. 29. 22:00
반응형

1. 목적

GridView 자료 출력시 Header 색상이 단순해 브러쉬를 넣어 기본 꾸미기

 

2. 적용방법

  dgViewMaster.CustomDrawColumnHeader += dgViewMaster_CustomDrawColumnHeader;

private void dgViewMaster_CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e)
{
    if (e.Column == null) { return; }

    Brush brush = new LinearGradientBrush(e.Bounds, Color.AliceBlue, Color.DodgerBlue, 90);
    Brush pressedBrush = new LinearGradientBrush(e.Bounds, Color.WhiteSmoke, Color.Gray, 90);

    Rectangle rectangle = e.Bounds;

    ControlPaint.DrawBorder3D
    (
        e.Graphics,
        rectangle,
        (e.Info.State == ObjectState.Pressed ? Border3DStyle.SunkenOuter : Border3DStyle.RaisedInner)
    );

    rectangle.Inflate(-1, -1);

    e.Graphics.FillRectangle((e.Info.State == ObjectState.Pressed ? pressedBrush : brush), rectangle);

    if (e.Column.AbsoluteIndex == dgViewMaster.FocusedColumn.AbsoluteIndex)
    {
        e.Appearance.Font = new Font(AppearanceObject.DefaultFont, FontStyle.Bold);
        e.Appearance.ForeColor = Color.Navy;
    }
    else
    {
        e.Appearance.Font = AppearanceObject.DefaultFont;
        e.Appearance.ForeColor = SystemColors.WindowText;
    }

    e.Appearance.DrawString(e.Cache, e.Column.GetTextCaption(), e.Info.CaptionRect);
    e.Info.InnerElements.DrawObjects(e.Info, e.Info.Cache, Point.Empty);
    e.Handled = true;
}

 

3. 적용결과

<결과>

 

반응형