DataGridView合并单元格

来源:互联网 发布:淘宝太坑 缩水扣不了 编辑:程序博客网 时间:2024/06/06 07:19
using System;using System.Drawing;using System.Windows.Forms;namespace 合并DataGridView单元格{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();            this.Load += new EventHandler(Form_Load);            this.dataGridView1.CellPainting+=new DataGridViewCellPaintingEventHandler(dataGridView1_CellPainting);        }        private void Form_Load(object sender, EventArgs e)        {            int index = dataGridView1.Rows.Add();            DataGridViewRow dr = dataGridView1.Rows[index];            dr.Cells["工作编号"].Value = "0001";            dr.Cells["项目名称"].Value = "后台开发";            dr.Cells["小组成员"].Value = "张三";            index = dataGridView1.Rows.Add();            dr = dataGridView1.Rows[index];            dr.Cells["工作编号"].Value = "0002";            dr.Cells["项目名称"].Value = "后台开发";            dr.Cells["小组成员"].Value = "钱五";            index = dataGridView1.Rows.Add();            dr = dataGridView1.Rows[index];            dr.Cells["工作编号"].Value = "0003";            dr.Cells["项目名称"].Value = "中台台开发";            dr.Cells["小组成员"].Value = "李四";            index = dataGridView1.Rows.Add();            dr = dataGridView1.Rows[index];            dr.Cells["工作编号"].Value = "0005";            dr.Cells["项目名称"].Value = "中台台开发";            dr.Cells["小组成员"].Value = "王五";            index = dataGridView1.Rows.Add();            dr = dataGridView1.Rows[index];            dr.Cells["工作编号"].Value = "0006";            dr.Cells["项目名称"].Value = "中台台开发";            dr.Cells["小组成员"].Value = "赵六";        }        private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)        {            if (e.RowIndex > -1)            {                if (e.ColumnIndex == 1)                {                    Brush datagridBrush = new SolidBrush(dataGridView1.GridColor);//定义一个填充图形内部对象的实例                    SolidBrush groupLineBrush = new SolidBrush(e.CellStyle.BackColor);//定义一个单色画笔的实例                    using (Pen datagridLinePen = new Pen(datagridBrush))//使用绘制直线或曲线的画笔                    {                        e.Graphics.FillRectangle(groupLineBrush, e.CellBounds);//清除单元格                        if (e.RowIndex < dataGridView1.Rows.Count - 1 && dataGridView1.Rows[e.RowIndex + 1].Cells[e.ColumnIndex].Value != null                            && dataGridView1.Rows[e.RowIndex + 1].Cells[e.ColumnIndex].Value.ToString() != e.Value.ToString())                        {                            //画底边线                            e.Graphics.DrawLine(datagridLinePen, e.CellBounds.Left, e.CellBounds.Bottom - 1, e.CellBounds.Right, e.CellBounds.Bottom - 1);                            //画右边线                            e.Graphics.DrawLine(datagridLinePen, e.CellBounds.Right - 1, e.CellBounds.Top, e.CellBounds.Right - 1, e.CellBounds.Bottom);                        }                        else                        {                            //画右边线                            e.Graphics.DrawLine(datagridLinePen, e.CellBounds.Right - 1, e.CellBounds.Top, e.CellBounds.Right - 1, e.CellBounds.Bottom);                        }                        if (e.RowIndex == dataGridView1.Rows.Count - 1)//最后一行只画底边线                        {                            e.Graphics.DrawLine(datagridLinePen, e.CellBounds.Left, e.CellBounds.Bottom - 1, e.CellBounds.Right, e.CellBounds.Bottom - 1);                        }                        if (e.Value != null)//填写单元格内容,相同内容只填写一个                        {                            if(!(e.RowIndex>0 && dataGridView1.Rows[e.RowIndex-1].Cells[e.ColumnIndex].Value.ToString()==e.Value.ToString()))                            {                                //绘制单元格的内容                                e.Graphics.DrawString(e.Value.ToString(), e.CellStyle.Font, Brushes.Black, e.CellBounds.X + 2, e.CellBounds.Y + 5, StringFormat.GenericDefault);                            }                        }                        e.Handled = true;//指示处理程序已经完成                    }                }            }        }    }}

原创粉丝点击