728x90

GridControl에서 BandedGridView 밴드나 칼럼헤드 글자 90회전해서 표시하는 소스입니다.

        bandedGridView1.CustomDrawBandHeader += BandedGridView1_CustomDrawBandHeader;
        bandedGridView1.CustomDrawColumnHeader += GridView1_CustomDrawColumnHeader;

        private StringFormat stringFormat = new StringFormat()
        {
            Alignment = StringAlignment.Near,
            LineAlignment = StringAlignment.Center
        };
        
        private void BandedGridView1_CustomDrawBandHeader(object sender, BandHeaderCustomDrawEventArgs e)
        {
            if (e.Band != null && e.Band.Columns.Count >0 && e.Band.Columns[0].FieldName.StartsWith("F"))
            {
                DrawString((GridView)sender, e.Cache, e.Bounds, e.Info.CaptionRect, e.Appearance, e.Band.Columns[0].GetCaption());
                e.Handled = true;
            }
        }
        
        private void GridView1_CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e)
        {
            if (e.Column != null && e.Column.FieldName.StartsWith("F"))
            {
                DrawString((GridView)sender, e.Cache, e.Bounds, e.Info.CaptionRect, e.Appearance, e.Column.GetCaption());
                e.Handled = true;
            }
            //var strformat = new StringFormatInfo(StringTrimming.EllipsisCharacter);

        }
 
        private void DrawString(GridView gv, GraphicsCache cache, Rectangle bounds, Rectangle bounds2, AppearanceObject appearance, string txt)
        {
            //e.Info.AllowColoring = true;
            cache.FillRectangle(appearance.BackColor, bounds);
            float x1 = bounds.Left + 1;
            float x2 = bounds.Right - 1;
            float y1 = bounds.Top + 1;
            float y2 = bounds.Bottom - 1;
            //cache.DrawRectangle(new Pen(gv.PaintAppearance.HorzLine.ForeColor, 1), e.Bounds);
            cache.DrawLine(x2, y1, x2, y2, gv.PaintAppearance.VertLine.ForeColor, 1);
            cache.DrawLine(x1, y2, x2, y2, gv.PaintAppearance.HorzLine.ForeColor, 1);
            //info.CaptionRect
            cache.DrawVString(txt, appearance.Font, appearance.GetForeBrush(cache), bounds2, stringFormat, -90);
        }

 

 

728x90
반응형

'Software > C#' 카테고리의 다른 글

C# DevExpress - Winform GridControl Cell DataBar  (0) 2025.01.27
C# 시작하기 - 날짜형 변환  (0) 2025.01.21
C# 시작하기 - Namespace : System  (0) 2025.01.11
C# 시작하기 - DirectoryInfo  (0) 2025.01.11
C# 시작하기 - FileInfo  (0) 2025.01.11

+ Recent posts