using DevExpress.XtraGrid.Views.Grid;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DemoCollection1
{
public partial class FormColSpan : Form
{
DataSet ds = new DataSet();
public FormColSpan()
{
InitializeComponent();
}
private void FormColSpan_Load(object sender, EventArgs e)
{
ds.Tables.Add();
ds.Tables[0].Columns.Add("gridColumn1");
ds.Tables[0].Columns.Add("gridColumn2");
ds.Tables[0].Columns.Add("gridColumn3");
ds.Tables[0].Columns.Add("gridColumn4");
ds.Tables[0].Columns.Add("gridColumn5");
for (int i = 0; i < 5; i++)
{
ds.Tables[0].Rows.Add();
ds.Tables[0].Rows[i]["gridColumn1"] = "合并列测试一";
if(i<2)
ds.Tables[0].Rows[i]["gridColumn2"] = "合并测试2.1";
else if (i>=2&& i<4)
ds.Tables[0].Rows[i]["gridColumn2"] = "合并测试2.2";
else
ds.Tables[0].Rows[i]["gridColumn2"] = "合并测试2.3";
ds.Tables[0].Rows[i]["gridColumn3"] = "测试三" + (i + 1).ToString();
ds.Tables[0].Rows[i]["gridColumn4"] = "测试四" + i.ToString();
ds.Tables[0].Rows[i]["gridColumn5"] = "合并列测试五";
}
gridControl1.DataSource = ds.Tables[0];
gridView1.OptionsView.AllowCellMerge = true;
}
}
}
效果图:
2.设置符合条件的列合并
在以上代码的基础上绑定gridView1_CellMerge事件
private void gridView1_CellMerge(object sender, CellMergeEventArgs e)
{
if (e.Column.FieldName != "gridColumn2") //只对分数这一列进行合并,其他列一律不合并
{
e.Merge = false; //值相同的2个单元格是否要合并在一起
e.Handled = true; //合并单元格的操作是否已经处理过,不再需要进行省缺处理
}
}
效果图: