单元格合并,并且,可以做到,有条件的合并,注意:设置了基偶数行变颜色会让单元格合并事件失效。失效。失效。重要事情说了三遍。分别是:
先设置:
之后添加gridView的事件
代码如下:
private void gv_docargo_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e)
{
if (e.Column.FieldName == "客户名称")
{
DevExpress.XtraGrid.Views.Grid.GridView gridView = sender as DevExpress.XtraGrid.Views.Grid.GridView;
if (gridView != null)
{
string value1 = (string)gridView1.GetRowCellValue(e.RowHandle1, e.Column);
string value2 = (string)gridView1.GetRowCellValue(e.RowHandle2, e.Column);
string value3 = (string)gridView1.GetRowCellValue(e.RowHandle1, col布号);
string value4 = (string)gridView1.GetRowCellValue(e.RowHandle2, col布号);
//if (value3 == value4)
//{
e.Merge = value1 == value2 && value3 == value4;
e.Handled = true;
//}
}
}
}
说明:
指定需要判断的那一列。
需要判断那列的值,的列,e.e.Column
如果没有条件,单单需要 value1 和 value2。 e.Merge = value1 == value2 即可。
但是,我还需要根据某一列内容相同才给合并,就需要添加 value3 和 value4 col布号 是指定某一列
e.Merge = value1 == value2 && value3 == value4; 多个 && 不仅仅,布号相同,还需要内容相同,才合并。
效果:
内容二:注意:合并后的单元格不能修改,要先:关闭合并,之后再开启
this.gridView1.OptionsView.AllowCellMerge = false;
private void gridView1_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e)
{
if (e.Column.FieldName == "品种编号" || e.Column.FieldName == "已安排数量" || e.Column.FieldName == "未安排数量")
{
DevExpress.XtraGrid.Views.Grid.GridView gridView = sender as DevExpress.XtraGrid.Views.Grid.GridView;
if (gridView != null)
{
string value1 = gridView1.GetRowCellValue(e.RowHandle1, e.Column) + "";
string value2 = gridView1.GetRowCellValue(e.RowHandle2, e.Column) + "";
string value3 = gridView1.GetRowCellValue(e.RowHandle1, col品种编号) + "";
string value4 = gridView1.GetRowCellValue(e.RowHandle2, col品种编号) + "";
e.Merge = value1 == value2 && value3 == value4;
e.Handled = true;
}
}
else if (e.Column.FieldName == "账号名称" || e.Column.FieldName == "操作日期")
{
DevExpress.XtraGrid.Views.Grid.GridView gridView = sender as DevExpress.XtraGrid.Views.Grid.GridView;
if (gridView != null)
{
string value1 = gridView1.GetRowCellValue(e.RowHandle1, e.Column) + "";
string value2 = gridView1.GetRowCellValue(e.RowHandle2, e.Column) + "";
e.Merge = value1 == value2;
e.Handled = true;
}
}
else
{
e.Merge = false;
e.Handled = true;
}
}
效果图: