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