C#打印分頁中的HasMorePages用法
對于HasMorePages,從字面上理解就是多頁打印,也就是實現(xiàn)C#打印分頁。在很多時候,由于參數(shù)設定錯誤,很容易出現(xiàn)new PointF(10.0, 30.0)部分報錯的現(xiàn)象。這里需要謹慎對待。
HasMorePages的作用很容易產(chǎn)生誤解,但也很好理解:當PrintPage函數(shù)執(zhí)行完后,如果HasMorePages==true,則重新執(zhí)行一遍PrintPage這個函數(shù)。只要明白了這一點,打印分頁就很簡單了。
在打印時,可以把打印位置保存下來,以便于第二次執(zhí)行PrintPage時知道從哪開始打印。例如,下面這段程序用來打印一個DataTable中有所有數(shù)據(jù),每頁打印一條:
C#打印分頁代碼
- class Print
 - {
 - public partial class NoticePrinter : Form
 - {
 - PrintDialog _printDialog;
 - PrintDocument _printDocument;
 - DataTable _table;
 - int _curRow;
 - //在執(zhí)行這個函數(shù)之前,先要把_curRow初始化為0;
 - //當HasMorePages==true時,這個函數(shù)會重復執(zhí)行,直到HasMorePages==fasle為止;
 - void _printDocument_PrintPage(object sender, PrintPageEventArgs e)
 - {
 - DataRow row;
 - string name;
 - string sex;
 - row = _table.Rows[_curRow];
 - name = row["xm"].ToString().Trim();
 - sex = row["xb"].ToString().Trim();
 - Font font = new Font("宋休", 12);
 - e.Graphics.DrawString(name, font, Brushes.Black, new PointF(10.0, 10.0));
 - e.Graphics.DrawString(sex, font, Brushes.Black, new PointF(10.0, 30.0));
 - _curRow++;
 - if (_curPage == _table.Rows.Count)
 - {
 - e.HasMorePages = false;
 - }
 - else
 - {
 - e.HasMorePages = true;
 - }
 - }
 - }
 - }
 
【編輯推薦】















 
 
 

 
 
 
 