1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace PrintPreviewTest
  10. {
  11. public partial class Form1 : Form
  12. {
  13. public Form1()
  14. {
  15. InitializeComponent();
  16. }
  17. private void Form1_Load( object sender, EventArgs e)
  18. {
  19. printPreviewControl1.Visible = false ;
  20. btnCancel.Enabled = false ;
  21. }
  22. private void btnPreview_Click( object sender, EventArgs e)
  23. {
  24. try
  25. {
  26. printPreviewControl1.Document = printDocument1;
  27. printPreviewControl1.Visible = true ;
  28. btnCancel.Enabled = true ;
  29. btnPreview.Enabled = false ;
  30. }
  31. catch (Exception ex)
  32. {
  33. MessageBox.Show(ex.Message, "预览出错" ,MessageBoxButtons.OK,MessageBoxIcon.Error);
  34. }
  35. }
  36. private void btnCancel_Click( object sender, EventArgs e)
  37. {
  38. printPreviewControl1.Visible = false ;
  39. btnCancel.Enabled = false ;
  40. btnPreview.Enabled = true ;
  41. }
  42. private void printDocument1_PrintPage( object sender, System.Drawing.Printing.PrintPageEventArgs e)
  43. {
  44. int x = e.PageBounds.Left+10;
  45. int y = e.PageBounds.Top+50;
  46. Graphics g = e.Graphics;
  47. Font font = new Font( "黑体" ,100);
  48. SolidBrush brush = new SolidBrush(Color.Green);
  49. string text= "此处输入需要打印的内容" ;
  50. g.DrawString(text,font,brush,x,y);
  51. }
  52. }
  53. }
有这么个需求:DataTable中有一些数据是需要给显示或直接可以连接 打印 机进行 打印 的, 查阅了一下资料,发现官方就有组件PrintPreviewDialog和PrintDocument能实现这个功能。 printPreviewControl 1通常与printDocument1 件配合使用,利用 printPreviewControl 1的属性Document与一个printDocument1绑定,即(this. printPreviewControl 1.Document = this.printDocument1;) 当 printPreviewControl 1被显示到界面,或执行this... 最近做项目的时候需要使用到 PrintPreviewControl 来实现 打印 。使用 PrintPreviewControl 的好处是,比PrintPreviewDialog要来的灵活。 PrintPreviewControl 可以放置在任何你需要的地方,而不用特别的弹出一个对话框。并且可以实现任何你需要的按钮功能。 废话不说,放上代码  #region ■宣言___