You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DataGridView能否实现HTML rowspan效果 展示双值并跨行合并单元格?

DataGridView多值展示与跨行合并实现方案

两个需求均可以通过内置事件或自定义逻辑实现,具体实现方式如下:

1. 单个单元格同时展示两个值

有两种常用实现方式,可根据场景选择:

  • 拼接展示:适用于两个值不需要差异化样式的场景。可以在数据源层提前拼接两个字段为一个值后绑定,也可以处理CellFormatting事件动态拼接,示例逻辑:
    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        // 假设第1列需要同时展示姓名和工号两个字段
        if (e.ColumnIndex == 1 && e.RowIndex >= 0)
        {
            var row = dataGridView1.Rows[e.RowIndex];
            e.Value = $"{row.Cells["姓名"].Value}({row.Cells["工号"].Value})";
            e.FormattingApplied = true;
        }
    }
    
    如果需要两个值分行展示,只需把单元格的DefaultCellStyle.WrapMode属性设置为DataGridViewTriState.True,拼接时用换行符\n分隔两个值,再调整行高即可。
  • 自定义绘制:适用于两个值需要不同样式(比如不同字体、颜色)的场景。处理CellPainting事件,在单元格内划分两个绘制区域,分别渲染两个值的样式即可,灵活度更高。

2. 实现类似HTML rowspan的跨行合并效果

核心逻辑是通过自定义单元格边框绘制+内容复用实现,不需要修改控件原生结构:

  • 第一步:提前定义合并规则,标记哪些行的哪些列属于同一个合并组,比如第0列的行1到行3需要合并为一个单元格。
  • 第二步:处理CellPainting事件,同合并组内的单元格只保留组首单元格的顶部边框和组尾单元格的底部边框,中间单元格的上下边框全部隐藏,同时只在组首单元格绘制内容,其余同组单元格不绘制内容。
    示例核心代码:
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
    // 合并第0列,行索引1-3的单元格
    if (e.ColumnIndex == 0 && e.RowIndex is >= 1 and <= 3)
    {
        // 隐藏同组内所有单元格的底部边框
        e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None;
        // 非组首单元格隐藏顶部边框,不绘制内容
        if (e.RowIndex != 1)
        {
            e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None;
            e.PaintBackground(e.ClipBounds, true);
            e.Handled = true;
        }
        // 组首单元格正常绘制内容
        if (e.RowIndex == 1)
        {
            e.Paint(e.ClipBounds, DataGridViewPaintParts.All & ~DataGridViewPaintParts.Border);
            e.Graphics.DrawString("合并内容", e.CellStyle.Font, Brushes.Black, e.CellBounds.X + 2, e.CellBounds.Y + 5);
            e.Handled = true;
        }
    }
}

注意:如果DataGridView开启了自动排序、筛选或分页功能,每次数据源更新后需要重新计算合并的行范围,避免合并区域错位

内容的提问来源于stack exchange,提问作者ISMAIL EL-KHAYRANY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 08:06:04