c# winform 打印DataGridView日期数据格式,格式化日期格式,可多页并可选择列打印...

foreach (DataGridViewCell Cel in GridRow.Cells)
{
if (!Cel.OwningColumn.Visible) continue;
if (!SelectedColumns.Contains(Cel.OwningColumn.HeaderText))
continue;

// For the TextBox Column
if (((Type) ColumnTypes[i]).Name == "DataGridViewTextBoxColumn" ||((Type) ColumnTypes[i]).Name == "DataGridViewLinkColumn")
{
e.Graphics.DrawString([color=red]Cel.FormattedValue[/color].ToString(), Cel.InheritedStyle.Font,
new SolidBrush(Cel.InheritedStyle.ForeColor),
new RectangleF((int)ColumnLefts[i], (float)tmpTop,
(int)ColumnWidths[i], (float)CellHeight), StrFormat);
}
// For the Button Column
else if (((Type) ColumnTypes[i]).Name == "DataGridViewButtonColumn")
{
CellButton.Text = Cel.Value.ToString();
CellButton.Size = new Size((int)ColumnWidths[i], CellHeight);
Bitmap bmp =new Bitmap(CellButton.Width, CellButton.Height);
CellButton.DrawToBitmap(bmp, new Rectangle(0, 0,bmp.Width, bmp.Height));
e.Graphics.DrawImage(bmp, new Point((int)ColumnLefts[i], tmpTop));
}
// For the CheckBox Column
else if (((Type) ColumnTypes[i]).Name == "DataGridViewCheckBoxColumn")
{.....}
// Drawing Cells Borders
e.Graphics.DrawRectangle(Pens.Black, new Rectangle((int)ColumnLefts[i],
tmpTop, (int)ColumnWidths[i], CellHeight));

i++;

}


重点就是Cel.FormattedValue了,这样就按照DataGridView的格式化格式打印了
而Cel.Value是按照单元格关联的

[color=red]附加一个可以实现打印DataGridView的打印源码[/color]

黑色头发:http://heisetoufa.iteye.com

你可能感兴趣的:(c#(winform))