winform 里打印预览多页功能的实现


新建一个winform窗体,拖入printDocument和printPreviewDialog1控件,然后进行后台编程,前台的主要表现形式如下:

后台代码如下:XXXX代表textbox的Name 

View Code
  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 using System.IO;
10
11 namespace windowdisplay.Forms.BaseForm
12 {
13 public partial class baseFormOfTest : Form
14 {
15
16 public GroupBox gb
17 {
18 get
19 {
20 return groupBox1;
21 }
22 set
23 {
24 groupBox1 = value;
25 }
26
27 }
28 private String filereadpath = null;
29 public String FileReadPath
30 {
31 get
32 {
33 return filereadpath;
34 }
35 set
36 {
37 filereadpath = value;
38 }
39 }
40
41
42 public baseFormOfTest()
43 {
44 InitializeComponent();
45 this.txtb_tqyb.MaxLength = 1000000000;
46
47 }
48
49 private void btn_gjjFileDialog_Click(object sender, EventArgs e)
50 {
51 if (openFileDialog_bzyb.ShowDialog() == DialogResult.OK)
52 {
53 txtb_bztqybFileFolder.Text = openFileDialog_bzyb.FileName.Trim().ToString();
54 using (StreamReader sr = new StreamReader(txtb_bztqybFileFolder.Text, Encoding.Default))
55 {
56 txtb_tqyb.Text = sr.ReadToEnd();
57
58 sr.Close();
59 }
60 }
61 }
62
63 private void btn_strenthread_Click(object sender, EventArgs e)
64 {
65
66 if (String.IsNullOrEmpty(filereadpath))
67 {
68 MessageBox.Show("找不到文件,请用左边方法打开");
69 btn_strenthread.Enabled = false;
70 }
71 else
72 {
73 using (StreamReader sr = new StreamReader(filereadpath, Encoding.Default))
74 {
75 txtb_tqyb.Text = sr.ReadToEnd();
76 sr.Close();
77 }
78 }
79
80 }
81
82 private void btn_SaveFile_Click(object sender, EventArgs e)
83 {
84 try
85 {
86 if (File.Exists(txtb_bztqybFileFolder.Text))
87 {
88 DialogResult RESULT = MessageBox.Show("是否确认覆盖原有文件?", "信息提示", MessageBoxButtons.YesNo);
89 if (RESULT.ToString().Equals("Yes"))
90 {
91 File.Delete(txtb_bztqybFileFolder.Text);
92 File.AppendAllText(txtb_bztqybFileFolder.Text, XXXX.Text, Encoding.Default);
93 }
94 else
95 {
96 return;
97 }
98 }
99 else
100 {
101 File.AppendAllText(txtb_bztqybFileFolder.Text, XXXX.Text, Encoding.Default);
102 }
103 }
104 catch
105 {
106 MessageBox.Show("没有文件保存!!");
107 }
108 }
109
110 private void btn_savelcw_Click(object sender, EventArgs e)
111 {
112 saveFileDialog_gjjyb.Filter = "*.txt)|*.txt|All files (*.*)|*.*";
113 if (saveFileDialog_gjjyb.ShowDialog() == DialogResult.OK)
114 {
115 File.AppendAllText(saveFileDialog_gjjyb.FileName.Trim().ToString(), XXXX.Text, Encoding.Default);
116 MessageBox.Show("成功保存");
117 }
118 else
119 {
120 MessageBox.Show("没有保存");
121 }
122
123 }
124
125 private void btn_exit_Click(object sender, EventArgs e)
126 {
127
128
129 DialogResult result = MessageBox.Show("真的要退出吗??", "温馨提示", MessageBoxButtons.YesNo);
130 if (result.ToString().Equals("Yes"))
131 {
132 this.Close();
133 }
134 else
135 {
136 return;
137 }
138 //for (int i = 0; i < txtb_tqyb.Lines.Length; i++)
139 //{
140
141 //}
142
143 }
144
145 private void btn_print_Click(object sender, EventArgs e)
146 {
147 DialogResult result = MessageBox.Show(
148 "是否打印预览打印文档", "打印预览", MessageBoxButtons.YesNo);
149 if (result.ToString().Equals("Yes"))
150 {
151 this.printPreviewDialog1.UseAntiAlias = true;
152 this.printPreviewDialog1.Document = this.printDocument1;
153 this.printPreviewDialog1.Size = new Size(800, 600);
154
155 this.printPreviewDialog1.ShowDialog();
156
157 }
158 else
159 {
160 this.printDocument1.Print();
161 }
162 }
163
164 private int i=0;
165 private int pagesize=45;
166 private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
167 {
168
169 int il = 1, ii = 13;//打出内容排列
170 for (; i < this.XXXX.Lines.Length;)
171 {
172
173 e.Graphics.DrawString(this.XXXX.Lines[i].ToString(), new Font("宋体", 9), Brushes.Black, 100, ii*il,new StringFormat());
174 il++;
175 if (i == pagesize)
176 {
177 i++;
178 pagesize = pagesize + pagesize-1;
179 e.HasMorePages = true;
180 break;
181 }
182 else
183 {
184 e.HasMorePages = false;
185 }
186 i++;
187 }
188 }
189
190 }
191 }
posted @ 2012-04-06 23:56  liyijiu  阅读(1251)  评论(0编辑  收藏  举报