c# datagridview合并单元格

#region"合并单元格的测试"

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界        private int? nextrow = null;

c datag

ridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界        private int? nextcol = null;

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界        private void dataGridView1_CellFormatting(object sender, System.Windows.Forms.DataGridViewCellFormattingEventArgs e)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界        ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            if (this.dataGridView1.Columns["description"].Index == e.ColumnIndex && e.RowIndex >= 0)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                if (this.nextcol != null & e.ColumnIndex == this.nextcol)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    e.CellStyle.BackColor = Color.LightBlue;

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    this.nextcol = null;

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                if (this.nextrow != null & e.RowIndex == nextrow)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    e.CellStyle.BackColor = Color.LightPink;

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    this.nextrow = null;

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                if (e.RowIndex != this.dataGridView1.RowCount - 1)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    if (e.Value.ToString() == this.dataGridView1.Rows[e.RowIndex + 1].Cells[e.ColumnIndex].Value.ToString())

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        e.CellStyle.BackColor = Color.LightPink;

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        nextrow = e.RowIndex + 1;

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            if (this.dataGridView1.Columns["name"].Index == e.ColumnIndex && e.RowIndex >= 0)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                if (e.Value.ToString() == this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 1].Value.ToString())

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    e.CellStyle.BackColor = Color.LightBlue;

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    nextcol = e.ColumnIndex + 1;

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界        }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界        //==========================

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界       

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界        //绘制单元格

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界        private void dataGridView1_CellPainting(object sender, System.Windows.Forms.DataGridViewCellPaintingEventArgs e)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界        ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界 

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            //纵向合并

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            if (this.dataGridView1.Columns["description"].Index == e.ColumnIndex && e.RowIndex >= 0)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                using (

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor),

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    backColorBrush = new SolidBrush(e.CellStyle.BackColor))

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    using (Pen gridLinePen = new Pen(gridBrush))

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        // 擦除原单元格背景

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        e.Graphics.FillRectangle(backColorBrush, e.CellBounds);

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        /**/////绘制线条,这些线条是单元格相互间隔的区分线条,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        ////因为我们只对列name做处理,所以datagridview自己会处理左侧和上边缘的线条

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        if (e.RowIndex != this.dataGridView1.RowCount - 1)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            if (e.Value.ToString() != this.dataGridView1.Rows[e.RowIndex + 1].Cells[e.ColumnIndex].Value.ToString())

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left, e.CellBounds.Bottom - 1,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                e.CellBounds.Right - 1, e.CellBounds.Bottom - 1);//下边缘的线

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                //绘制值

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                if (e.Value != null)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                    e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                        Brushes.Crimson, e.CellBounds.X + 2,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                        e.CellBounds.Y + 2, StringFormat.GenericDefault);

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        else

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left, e.CellBounds.Bottom - 1,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                e.CellBounds.Right - 1, e.CellBounds.Bottom - 1);//下边缘的线

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            //绘制值

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            if (e.Value != null)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                    Brushes.Crimson, e.CellBounds.X + 2,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                    e.CellBounds.Y + 2, StringFormat.GenericDefault);

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        //右侧的线

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right - 1,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            e.CellBounds.Top, e.CellBounds.Right - 1,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            e.CellBounds.Bottom - 1);

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        e.Handled = true;

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            //横向合并

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            if (this.dataGridView1.Columns["name"].Index == e.ColumnIndex && e.RowIndex >= 0)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                using (

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor),

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    backColorBrush = new SolidBrush(e.CellStyle.BackColor))

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    using (Pen gridLinePen = new Pen(gridBrush))

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        // 擦除原单元格背景

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        e.Graphics.FillRectangle(backColorBrush, e.CellBounds);

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        if (e.Value.ToString() != this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 1].Value.ToString())

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            //右侧的线

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right - 1, e.CellBounds.Top,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                e.CellBounds.Right - 1, e.CellBounds.Bottom - 1);

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            //绘制值

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            if (e.Value != null)

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            ...{

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                    Brushes.Crimson, e.CellBounds.X + 2,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                    e.CellBounds.Y + 2, StringFormat.GenericDefault);

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                            }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        //下边缘的线

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left, e.CellBounds.Bottom - 1,

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                                                    e.CellBounds.Right - 1, e.CellBounds.Bottom - 1);

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                        e.Handled = true;

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                    }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界                }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界            }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界        }

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界

c datagridview合并单元格 - 凡哥(尘士留缘) - 网络帝国大世界        #endregion

做人中庸不平庸,做事到位不越位
原文地址:https://www.cnblogs.com/Alum/p/3587984.html