1.在Form窗体拖入打印控件,命名设置如下:
- pageSetupDialog: name:pageSetupDialog1 Document设为printDocument控件的实例
- printDialog: name:printDialog2 Document设为printDocument控件的实例
- printDocument: name:pdocOrderDetails PrintPage事件:pdocOrderDetails_PrintPage
- printPreviewDialog:name:printDialog2 Document设为printDocument控件的实例
- printPreviewDialog:name:ppdlgOrderDetails Document设为printDocument控件的实例
打印设置按钮事件:
{
this .pageSetupDialog1.ShowDialog();
}
打印预览按钮事件:
{
this .printPreviewDialog1.ShowDialog();
}
打印按钮事件:
{
if ( this .printDialog2.ShowDialog() == DialogResult.OK)
{
this .pdocOrderDetails.Print();
}
}
PrintPage事件:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
private void pdocOrderDetails_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
//设置字体和和画刷
Font objFont = new Font("Tahoma", 11, FontStyle.Regular);
Brush objBrush = Brushes.Black;
Pen objPen = new Pen(objBrush);
objPen.Width = 2;
//向打印预览按钮添加内容
int nLeft = this.pageSetupDialog1.PageSettings.Margins.Left;
int nTop = this.pageSetupDialog1.PageSettings.Margins.Top;
int nWidth = this.pageSetupDialog1.PageSettings.PaperSize.Width - (this.pageSetupDialog1.PageSettings.Margins.Left + this.pageSetupDialog1.PageSettings.Margins.Right);
int nHeight = this.pageSetupDialog1.PageSettings.PaperSize.Height - (this.pageSetupDialog1.PageSettings.Margins.Top + this.pageSetupDialog1.PageSettings.Margins.Bottom);
//画出页面有效区域
//e.Graphics.DrawString("客户姓名", new Font("Garamond", 40, FontStyle.Bold), Brushes.Blue, nLeft + 30, nTop + 10);
e.Graphics.DrawString("客户姓名", objFont, objBrush, nLeft, nTop + 60);
e.Graphics.DrawString("客户卡号", objFont, objBrush, nLeft + 70, nTop + 60);
e.Graphics.DrawString("客户生日", objFont, objBrush, nLeft + 160, nTop + 60);
e.Graphics.DrawString("客户邮箱", objFont, objBrush, nLeft + 250, nTop + 60);
e.Graphics.DrawString("手机号码", objFont, objBrush, nLeft + 420, nTop + 60);
e.Graphics.DrawString("客户地址", objFont, objBrush, nLeft + 540, nTop + 60);
try
{
T_MembersInfoTableAdapter adpMember = new T_MembersInfoTableAdapter();
DAL.DS_MembersInfo.T_MembersInfoDataTable tbMember = adpMember.GetData();
int nLine = 1;
foreach (DAL.DS_MembersInfo.T_MembersInfoRow rowMember in tbMember)
{
e.Graphics.DrawString(rowMember.sName, objFont , objBrush, nLeft, nTop+60+nLine*30);
e.Graphics.DrawString(rowMember.sCartId, objFont, objBrush, nLeft + 70, nTop + 60 + nLine * 30);
e.Graphics.DrawString(rowMember.dBirthday.ToShortDateString(), objFont, objBrush, nLeft + 160, nTop + 60 + nLine * 30);
e.Graphics.DrawString(rowMember.sEmail, objFont, objBrush, nLeft + 250, nTop + 60 + nLine * 30);
e.Graphics.DrawString(rowMember.sMobile, objFont, objBrush, nLeft + 420, nTop + 60 + nLine * 30);
e.Graphics.DrawString(rowMember.sAddress, objFont, objBrush, nLeft + 540, nTop + 60 + nLine * 30);
nLine++;
}
}
catch (Exception ex)
{
MessageBox.Show("程序错误" + ex);
this.Close();
}
}