[DEVEXPRESS/WINFORM] PivotGridControl 클래스 : CustomDrawFieldValue 이벤트를 사용해 필드 값 헤더 모양 변경하기
DevExpress/WinForm 2020. 5. 14. 21:51728x90
반응형
728x170
▶ MainForm.cs
using System;
using System.Data;
using System.Drawing;
using DevExpress.XtraEditors;
using DevExpress.XtraPivotGrid;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : XtraForm
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
this.pivotGridControl.OptionsView.RowTreeWidth = 150;
DataTable table = this.dataSet.Tables["Data"];
table.Rows.Add(new object[] { "UK" , DateTime.Today.AddYears(-1) , 4 , 5 });
table.Rows.Add(new object[] { "UK" , DateTime.Today.AddYears(-1).AddDays(1), 2 , 8 });
table.Rows.Add(new object[] { "USA" , DateTime.Today.AddYears(-1) , 3 , 9 });
table.Rows.Add(new object[] { "USA" , DateTime.Today.AddDays(1).AddYears(-1), 1 , 5 });
table.Rows.Add(new object[] { "France", DateTime.Today.AddYears(-1) , 8 , 3 });
table.Rows.Add(new object[] { "France", DateTime.Today.AddDays(1).AddYears(-1), 22 });
table.Rows.Add(new object[] { "UK" , DateTime.Today , 7 , 3 });
table.Rows.Add(new object[] { "UK" , DateTime.Today.AddDays(1) , 4 , 1 });
table.Rows.Add(new object[] { "USA" , DateTime.Today , 12, 6 });
table.Rows.Add(new object[] { "USA" , DateTime.Today.AddDays(1) , 14, 7 });
table.Rows.Add(new object[] { "France", DateTime.Today , 11, 1 });
table.Rows.Add(new object[] { "France", DateTime.Today.AddDays(1) , 10, 3 });
this.pivotGridControl.RefreshData();
this.pivotGridControl.BestFitColumnArea();
this.pivotGridControl.CustomDrawFieldValue += pivotGridControl_CustomDrawFieldValue;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 피벗 그리드 컨트롤 필드 값 커스텀 그리기 - pivotGridControl_CustomDrawFieldValue(sender, e)
/// <summary>
/// 피벗 그리드 컨트롤 필드 값 커스텀 그리기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void pivotGridControl_CustomDrawFieldValue(object sender, PivotCustomDrawFieldValueEventArgs e)
{
if(e.Area == PivotArea.ColumnArea)
{
e.Appearance.BackColor = Color.GreenYellow;
}
else if(e.Area == PivotArea.RowArea)
{
e.Painter.DrawObject(e.Info);
e.Painter.DrawIndicator(e.Info);
e.GraphicsCache.FillRectangle(e.GraphicsCache.GetSolidBrush(Color.FromArgb(50, 0, 0, 200)), e.Bounds);
e.Handled = true;
}
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
댓글을 달아 주세요