DataGridView如何实现双表头结构,求解?
具体就是使表头实现多层结构的显示(不要用树结构)。具体就是一个标题占两列,下面各有一列不同表头
2010-08-12 20:57
2010-08-12 22:42
程序代码:private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex == 0 && e.ColumnIndex >= 0)
{
int left = e.CellBounds.Left;
int top = e.CellBounds.Top;
int right = e.CellBounds.Right;
int bottom = e.CellBounds.Bottom;
e.Graphics.FillRectangle(new SolidBrush(Color.White), e.CellBounds);
e.Handled = true;
Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor);
Pen gridLinePen = new Pen(gridBrush);
e.Graphics.DrawLine(gridLinePen, right - 1,
top, right - 1,
bottom - 1);
e.Graphics.DrawLine(gridLinePen, left,
bottom - 1, right,
bottom - 1);
Brush b1 = new SolidBrush(Color.Black);
e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,
b1, left + 2,
top + 1, StringFormat.GenericDefault);
Brush b2 = new SolidBrush(Color.Red);
e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,
b2, left + 2,
top + 10, StringFormat.GenericDefault);
}
DataGridViewSelectedCellCollection dgvscc = this.dataGridView1.SelectedCells;
foreach (DataGridViewCell dgvc in dgvscc)
{
if (e.RowIndex == 0
&& e.RowIndex == dgvc.RowIndex
&& e.ColumnIndex == dgvc.ColumnIndex)
{
int left = e.CellBounds.Left;
int top = e.CellBounds.Top;
int right = e.CellBounds.Right;
int bottom = e.CellBounds.Bottom;
// 绘制背景,覆盖单元格区域
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(10,36,106)), e.CellBounds);
// 绘制边框
Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor);
Pen gridLinePen = new Pen(gridBrush);
e.Graphics.DrawLine(gridLinePen, right - 1,
top, right - 1,
bottom - 1);
e.Graphics.DrawLine(gridLinePen, left,
bottom - 1, right,
bottom - 1);
// 绘制文字
Brush b1 = new SolidBrush(Color.White);
e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,
b1, left + 2,
top + 1, StringFormat.GenericDefault);
Brush b2 = new SolidBrush(Color.White);
e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,
b2, left + 2,
top + 10, StringFormat.GenericDefault);
}
}
e.Handled = true;
}

2010-08-13 09:53
2010-08-14 08:22
2010-08-16 09:53
2011-05-15 18:52