2016-04-02 24 views
0

Ich habe eine DataGridView und durch Klicken auf die Schaltfläche Drucken zeigt es Druckvorschau und dann durch Klicken auf die Schaltfläche Drucken soll es den Druckvorschau Inhalt drucken.DataGridView Inhalt wird nicht gedruckt

Das Problem ist mein DataGridView Inhalt wird in der Druckvorschau angezeigt, aber wenn ich es als xps Dokument speichern. Es zeigt nicht DataGridView Inhalt. obwohl header und footer da ist. aber nur DataGridView daten werden nicht gedruckt.

Hier Code DataGridView Zeilen drucken:

e.Graphics.DrawRectangle(p, new System.Drawing.Rectangle(100, height, 
    dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height)); 

e.Graphics.DrawString(dataGridView1.Rows[i].Cells[1].FormattedValue.ToString(), 
    dataGridView1.Font, Brushes.Black, new System.Drawing.Rectangle(90, height, 
    dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height)); 

e.Graphics.DrawRectangle(p, new System.Drawing.Rectangle(100, height, 
    dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height)); 

e.Graphics.DrawString(dataGridView1.Rows[i].Cells[2].FormattedValue.ToString(), 
    dataGridView1.Font, Brushes.Black, new System.Drawing.Rectangle(270, height, 
    dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height)); 

e.Graphics.DrawRectangle(p, new System.Drawing.Rectangle(100, height, 
dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height)); 

e.Graphics.DrawString(dataGridView1.Rows[i].Cells[3].FormattedValue.ToString(), 

dataGridView1.Font, Brushes.Black, new System.Drawing.Rectangle(450, height, 
dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height)); 

e.Graphics.DrawRectangle(p, new System.Drawing.Rectangle(100, height, 
     dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height)); 

e.Graphics.DrawString(dataGridView1.Rows[i].Cells[5].FormattedValue.ToString(), 
    dataGridView1.Font, Brushes.Black, new System.Drawing.Rectangle(670, height, 
    dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height)); 
+0

Darüber hinaus furchtbar verwickelt (warum nicht ziehen aus der Höhe und Breite in zwei Varianten?) der Code, __wenn es tatsächlich den Inhalt__ in der Vorschau __seems__ ok zeigt. Wie genau programmieren Sie die Schleife und richten das Dokument ein? Wo berechnen Sie 'Höhe'? - Auch: __Nicht _DataGridView'a 'GridView' aufrufen !! Das ist falsch und verwirrend. Rufe die Dinge immer nach ihrem __right__ Namen! Ja, es dauert __four__ Buchstaben mehr zu schreiben .. – TaW

Antwort

1

Ort Debugger und überprüfen Datenquelle nach Klick auf die Drucktaste könnte es neu initialisieren sein werden, warum es nicht Ihre Datenbindung

+0

Was ist, wenn ich Drittanbieter-Tool verwenden, um Dokument wie Crystal Report oder Iterxsharp zu drucken? Ist es in Ordnung, ein Drittanbieter-Tool für Ihr Projekt zu verwenden? Ich meine, sie sind nicht irgendwann nach oder nicht abgelaufen? –

1

wenn Sie wollen zeigen Sie Ihre Grid in nur Textformat oder pdf es gibt keine Notwendigkeit, Drittanbieter-Tool verwenden Sie einfach C# -Bibliotheken, um Ihre Aufgabe zu erfüllen, sonst gibt es kein Problem zu Drittanbieter-Tool, die frei verfügbar sind

+2

Bitte fügen Sie dies zu Ihrer ursprünglichen Antwort hinzu. Dies ist kein Diskussionsforum, also erstellen Sie keine separaten Antworten, es sei denn, sie geben zwei völlig getrennte Antworten. – slugster