2017-03-18 55 views
0

我有一個DataGridView,並通過點擊打印按鈕它顯示打印預覽,然後通過點擊打印按鈕它應該打印打印預覽內容。C#:DataGridView的內容不會出現在硬拷貝

問題是我的DataGridView內容顯示在打印預覽中,但是當我將它保存爲XPS文檔時。它不顯示DataGridView內容。儘管頁眉和頁腳在那裏。但只有DataGridView數據未打印。

這是打印的行代碼:

e.Graphics.DrawString(list[i].Sr.ToString(), new Font("Arial", 12), Brushes.Black, new Point(35, yposition)); 
e.Graphics.DrawString(list[i].Name.ToString(), new Font("Arial", 12), Brushes.Black, new Point(80, yposition)); 
e.Graphics.DrawString(list[i].Packing.ToString(), new Font("Arial", 12), Brushes.Black, new Point(355, yposition)); 
e.Graphics.DrawString(list[i].Quantity.ToString(), new Font("Arial", 12), Brushes.Black, new Point(495, yposition)); 
e.Graphics.DrawString(list[i].Price.ToString(), new Font("Arial", 12), Brushes.Black, new Point(560, yposition)); 
e.Graphics.DrawString(list[i].TotalAmount.ToString(), new Font("Arial", 12), Brushes.Black, new Point(680, yposition)); 

我使用的Visual Studio 2013

+0

您可能在預覽後沒有重置行索引器,但是**該代碼看起來像是在打印List或Array而不是DGV,並且您是否真的需要爲每個項目添加**新**字體? – Plutonix

+0

我正在使用列表來獲取數據網格視圖值 –

+0

請勿在您的主題標題中使用「C#」等。這就是標籤的用途。 – InteXX

回答

0

你可能在這裏做了太多的工作。您可以通過以下簡單的代碼繪製整個DataGridViewGraphics對象:

using(Bitmap bmp = new Bitmap(800, 600)) 
{ 
    YourDataGridView.DrawToBitmap(bmp, new Rectangle(0, 0, 800, 600); 
    e.Graphics.DrawImageUnscaled(bmp, 0, 0); 
} 

這應該都打印預覽和打印工作。

+0

我認爲這看起來很糟糕。 – TaW