반응형
데이터를 표시하다가 보면 컬러에 숫자와 컬러바가 같이 표시하고자 하실때 사용
값에 따라 표시하는 색상를 다르게도 할수 있어 참고하시고 응용하셔도 좋습니다.
using System;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraEditors.Repository;
namespace WinFormTest
{
public partial class Form1 : Form
{
private RepositoryItemProgressBar pbRed = new RepositoryItemProgressBar();
private RepositoryItemProgressBar pbGreen = new RepositoryItemProgressBar();
public Form1()
{
InitializeComponent();
gridView1.CustomRowCellEdit += gridview_CustomRowCellEdit;
// 초기화 선언
this.Shown += WinFormTest_Shown;
}
private void WinFormTest_Shown(object sender, EventArgs e)
{
initGridControl();
this.gridControl1.DataSource = GetData();
}
private void initGridControl()
{
GridView gv = this.gridControl1.MainView as GridView;
gv.OptionsView.ShowGroupPanel = false;
gv.OptionsBehavior.Editable = false;
// 컬럼 바 색상 초기화 (Red) - 50미만일때 사용
pbRed.LookAndFeel.UseDefaultLookAndFeel = false;
pbRed.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat;
pbRed.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid;
pbRed.Minimum = 0;
pbRed.Maximum = 100;
pbRed.StartColor = Color.Red;
pbRed.EndColor = Color.Red;
pbRed.PercentView = false;
pbRed.ShowTitle = true;
// 컬럼 바 색상 초기화 (Green) - 50이상일때 사용
pbGreen.LookAndFeel.UseDefaultLookAndFeel = false;
pbGreen.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat;
pbGreen.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid;
pbGreen.Minimum = 0;
pbGreen.Maximum = 100;
pbGreen.StartColor = Color.Green;
pbGreen.EndColor = Color.Green;
pbGreen.PercentView = false;
pbGreen.ShowTitle = true;
}
private DataTable GetData()
{
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Age");
dt.Columns.Add("Sex");
dt.Columns.Add("Score");
dt.Rows.Add(new string[] { "조조", "28", "남성", "100" });
dt.Rows.Add(new string[] { "유비", "28", "여성", "45" });
dt.Rows.Add(new string[] { "황선홍", "56", "여성", "10" });
dt.Rows.Add(new string[] { "안정환", "34", "남성", "78" });
dt.Rows.Add(new string[] { "설기현", "33", "남성", "53" });
dt.Rows.Add(new string[] { "박지성", "24", "남성", "10" });
return dt;
}
private void gridview_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e)
{
if (gridView1.GetDataRow(e.RowHandle) == null) return;
if (e.Column.FieldName != "Score") return;
string isScroe = gridView1.GetDataRow(e.RowHandle)["Score"].ToString();
if (Convert.ToInt32(isScroe) < 50)
e.RepositoryItem = pbRed;
else
e.RepositoryItem = pbGreen;
}
}
}
<결과화면>
반응형
'개발(IT) > DevExpress(WinForm)' 카테고리의 다른 글
[GridView] Column에 ComboBox(콤보박스) 넣기 #2 (0) | 2023.09.17 |
---|---|
[GridView] Column에 ComboBox(콤보박스) 넣기 #1 (0) | 2023.09.17 |
[GridView] Cell Merge(셀 병합) 하기 (0) | 2023.09.02 |
[GridView] CustomDrawRowFooterCell 이벤트를 사용해 행 바닥글 셀 커스텀 그리기 (0) | 2023.09.02 |
[GridView] CustomDrawRowFooter 이벤트를 사용해 행 바닥글 커스텀 그리기 (0) | 2023.09.02 |