winform DataGridView 合并单元格

weimei521 2017-09-13 05:01:30

根据其中的组合名称和cl和cf_flag,如果相同,就实现下面的效果

 for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["emergy_type"] = hc.getEncoding(dt.Rows[i]["emergy_type"].ToString().Trim(), 0);
dt.Rows[i]["name"] = hc.getEncoding(dt.Rows[i]["name"].ToString().Trim(), 0);
dt.Rows[i]["drugname"] = hc.getEncoding(dt.Rows[i]["drugname"].ToString().Trim(), 0);
dt.Rows[i]["specification"] = hc.getEncoding(dt.Rows[i]["specification"].ToString().Trim(), 0);
dt.Rows[i]["unit"] = hc.getEncoding(dt.Rows[i]["unit"].ToString().Trim(), 0);
dt.Rows[i]["flag"] = hc.getEncoding(dt.Rows[i]["flag"].ToString().Trim(), 0);
dt.Rows[i]["check_equip"] = hc.getEncoding(dt.Rows[i]["check_equip"].ToString().Trim(), 0);
dt.Rows[i]["old_ill"] = hc.getEncoding(dt.Rows[i]["old_ill"].ToString().Trim(), 0);
dt.Rows[i]["adresult"] = hc.getEncoding(dt.Rows[i]["adresult"].ToString().Trim(), 0);
dt.Rows[i]["information"] = hc.getEncoding(dt.Rows[i]["information"].ToString().Trim(), 0);
dt.Rows[i]["goal"] = hc.getEncoding(dt.Rows[i]["goal"].ToString().Trim(), 0);
dt.Rows[i]["group_name"] = hc.getEncoding(dt.Rows[i]["group_name"].ToString().Trim(), 0);
dt.Rows[i]["deptname"] = hc.getEncoding(dt.Rows[i]["deptname"].ToString().Trim(), 0);
dt.Rows[i]["execName"] = hc.getEncoding(dt.Rows[i]["execName"].ToString().Trim(), 0);
dt.Rows[i]["parent_name"] = hc.getEncoding(dt.Rows[i]["parent_name"].ToString().Trim(), 0);
dt.Rows[i]["cf_flag"] = hc.getEncoding(dt.Rows[i]["cf_flag"].ToString().Trim(), 0);
if (dt.Rows[i]["payname"].ToString() == "0")
{
dt.Rows[i]["payname"] = "已收费";
}
if (dt.Rows[i]["payname"].ToString() == "5")
{
dt.Rows[i]["payname"] = "未收费";
}
}

这是加载的循环语句,该怎么实现
...全文
568 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
weimei521 2017-09-14
  • 打赏
  • 举报
回复
[quote=引用 1 楼 duanzi_peng 的回复:] 没太明白,这里怎么判断的组合名称和cf_flag
exception92 2017-09-13
  • 打赏
  • 举报
回复

            this.dgv.CellPainting += (sc, ec) =>
            {
                ec.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None;
                if (ec.RowIndex < 1 || ec.ColumnIndex < 0)
                    return;

                if (IsCellValueSame((DataGridView)sc, ec.ColumnIndex, ec.RowIndex))
                    ec.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None;
                else
                    ec.AdvancedBorderStyle.Top = ((DataGridView)sc).AdvancedCellBorderStyle.Top;
            };
IsCellValueSame:

 /// <summary>
        /// 验证是否相等
        /// </summary>
        /// <param name="dgv">dataGridView对象</param>
        /// <param name="columnIndex">列索引</param>
        /// <param name="rowIndex">行索引</param>
        private bool IsCellValueSame(DataGridView dgv, int columnIndex, int rowIndex)
        {
            DataGridViewCell cellPrev = dgv[columnIndex, rowIndex];
            DataGridViewCell cellNext = dgv[columnIndex, rowIndex - 1];
            // 判断值
            if (cellPrev.Value == null || cellNext.Value == null)
                return false;

            return cellPrev.Value.ToString() == cellNext.Value.ToString();
        }

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧