次のような列名で、ListView 内のすべての項目を順番に印刷できる必要があります。
開始: (日付) 終了: (日付) シフト: (シフト番号) 販売: (販売)
そして、それは私が必要とするもののために完全に印刷されますが、最初のページ(またはリストビューの最初の12行)のみを印刷します。それをすべて印刷しますが、わかりません。
private void btnPrint_Click(object sender, EventArgs e)
{
try
{
PrintDialog pd = new PrintDialog();
PrintDocument MyPrintDocument = new PrintDocument();
MyPrintDocument.PrintPage += new PrintPageEventHandler(this.PrintPageEvent);
pd.PrinterSettings.PrintRange = PrintRange.AllPages;
MyPrintDocument.PrinterSettings.PrintRange = PrintRange.AllPages;
MyPrintDocument.Print();
}
}
private void PrintPageEvent(object sender, PrintPageEventArgs ev)
{
string text = null;
for (int i = 0; i < listView4.Items.Count; i++)
{
text += "Start: " + listView4.Items[i].Text + Environment.NewLine + "End: " + listView4.Items[i].SubItems[1].Text + Environment.NewLine + "Shift Number: " + listView4.Items[i].SubItems[2].Text + Environment.NewLine + "Total Sales: " + listView4.Items[i].SubItems[3].Text + Environment.NewLine + "----------------------------" + Environment.NewLine;
}
MessageBox.Show(text);
Font MyFont = new Font("Arial", 12);
ev.Graphics.DrawString("------------------------------------" +
Environment.NewLine + text +
Environment.NewLine + "------------------------------------", MyFont, new SolidBrush(System.Drawing.Color.Black),
(ev.PageBounds.Left), ev.PageBounds.Top);
}