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 |