c# 打印 在c#里有printPreviewDialog、printDocument两个控件,可是怎么使用呢?我现在想打印一个窗体里DataGridView里的所有内容,可不知道怎么操作,我不想用水晶报表。其中可能数据量很大,需要要用到分页。希望哪位高人指点一下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果使用printDocument来打印 可以在PrintPage事件里处理 System.Drawing.Printing.PrintDocument _Document = new System.Drawing.Printing.PrintDocument(); _Document.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(_Document_PrintPage); void _Document_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.Graphics.DrawString("AAA", this.Font, Brushes.Yellow, 20, 20); } 这样可以打印datagridview里的内容吧? 再把代码帖一下:private void button2_Click(object sender, EventArgs e){ PrintPreviewDialog pd = new PrintPreviewDialog(); pd.Document = new PrintDocument(); pd.Document.PrintPage += new PrintPageEventHandler(Document_PrintPage); pd.Document.QueryPageSettings += new QueryPageSettingsEventHandler(Document_QueryPageSettings); pd.Document.BeginPrint += new PrintEventHandler(Document_BeginPrint); if (pd.ShowDialog(this) == DialogResult.OK) { }}void Document_QueryPageSettings(object sender, QueryPageSettingsEventArgs e){ e.PageSettings.Landscape = true; int index = -1; for (int i=0;i<e.PageSettings.PrinterSettings.PaperSizes.Count;i++) { if (e.PageSettings.PrinterSettings.PaperSizes[i].PaperName== "A4") { index=i; break; } } if (index != -1) { e.PageSettings.PaperSize = e.PageSettings.PrinterSettings.PaperSizes[index]; }}void Document_BeginPrint(object sender, PrintEventArgs e){}int i = 0;void Document_PrintPage(object sender, PrintPageEventArgs e){ //e.Graphics.DrawString("测试", this.Font, SystemBrushes.ControlText, Rectangle.FromLTRB(10, 10, 80, 80)); //e.HasMorePages = i<10; //i++;} http://blog.csdn.net/luckisok/archive/2008/05/08/2414396.aspx 紧急求助 BackgroundWorker 问题 FolderBrowserDialog 问题 C# 发送消息 Office开发需要什么dll文件吗? 怎样实现任意数的任意次方的计算? c# 对EXCEL操作的问题 一个拖放问题 各位高手牛人进来看看啊...一个关于网络文件传输的问题 为什么安装部署后执行安装没有安装任何文件上去? 有关c#DateGridView的DataGridViewComboBoxColumn列问题 多格式的项目; C#下sql日期查询奇怪问题
_Document.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(_Document_PrintPage); void _Document_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawString("AAA", this.Font, Brushes.Yellow, 20, 20);
}
{
PrintPreviewDialog pd = new PrintPreviewDialog();
pd.Document = new PrintDocument();
pd.Document.PrintPage += new PrintPageEventHandler(Document_PrintPage);
pd.Document.QueryPageSettings += new QueryPageSettingsEventHandler(Document_QueryPageSettings);
pd.Document.BeginPrint += new PrintEventHandler(Document_BeginPrint);
if (pd.ShowDialog(this) == DialogResult.OK)
{
}
}void Document_QueryPageSettings(object sender, QueryPageSettingsEventArgs e)
{
e.PageSettings.Landscape = true;
int index = -1;
for (int i=0;i<e.PageSettings.PrinterSettings.PaperSizes.Count;i++)
{
if (e.PageSettings.PrinterSettings.PaperSizes[i].PaperName== "A4")
{
index=i;
break;
}
}
if (index != -1)
{
e.PageSettings.PaperSize = e.PageSettings.PrinterSettings.PaperSizes[index];
}
}void Document_BeginPrint(object sender, PrintEventArgs e)
{
}
int i = 0;
void Document_PrintPage(object sender, PrintPageEventArgs e)
{
//e.Graphics.DrawString("测试", this.Font, SystemBrushes.ControlText, Rectangle.FromLTRB(10, 10, 80, 80));
//e.HasMorePages = i<10;
//i++;
}