반응형
using System;
using System.Data;
using System.Windows.Forms;
using DevExpress.XtraGrid.Views.Grid;
namespace WinFormTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 초기화 선언
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;
gv.OptionsView.AllowCellMerge = true;
gv.CellMerge += CellMerge_Event;
}
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 CellMerge_Event(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e)
{
if (e.Column.FieldName == "Sex")
{
var dr1 = gridView1.GetDataRow(e.RowHandle1); // 위에 행
var dr2 = gridView1.GetDataRow(e.RowHandle2); // 아래 행
// 비교
e.Merge = dr1["Sex"].ToString().Equals(dr2["Sex"].ToString());
}
else
{
e.Merge = false;
}
e.Handled = true;
}
}
}
<결과화면>
반응형
'개발(IT) > DevExpress(WinForm)' 카테고리의 다른 글
[GridView] Column에 ComboBox(콤보박스) 넣기 #1 (0) | 2023.09.17 |
---|---|
[GridView] Column 값에 따라 컬러바(Color Bar) 표시하기 (0) | 2023.09.02 |
[GridView] CustomDrawRowFooterCell 이벤트를 사용해 행 바닥글 셀 커스텀 그리기 (0) | 2023.09.02 |
[GridView] CustomDrawRowFooter 이벤트를 사용해 행 바닥글 커스텀 그리기 (0) | 2023.09.02 |
[GridView] CustomDrawColumnHeader 이벤트 헤더(Header) 꾸미기 (0) | 2023.08.29 |