Laden...

C# Datagrid drucken ab zeile X neue Seite

Erstellt von Maffi1986 vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.819 Views
Maffi1986 Themenstarter:in
53 Beiträge seit 2012
vor 9 Jahren
C# Datagrid drucken ab zeile X neue Seite

Hallo liebe C#ler,

ich drucke ein Datagrid, hier ein Codeauszug


                   DataGridViewRow GridRow = DgVGutsch.Rows[iRow];
                    //Set the cell height
                    iCellHeight = GridRow.Height + 5;
                    int iCount = 0;
                    //Check whether the current page settings allo more rows to print
                    if (iTopMargin + iCellHeight >= e.MarginBounds.Height + e.MarginBounds.Top)
                    {
                        bNewPage = true;
                        bFirstPage = false;
                        bMorePagesToPrint = true;
                        break;
                    }
                    else
                    {
                        if (bNewPage)
                        {

woran erkennt der Code, das eine neue Seite benötigt wird? Mein Problem, die Seite hat einen Fuß der von dem grid überdruckt wird sobald das Grid mehr als 16 Zeilen hat. Wo kann ich bestimmen, wann eine neue Seite gedruckt wird? Und falls eine neue Seite gedruckt wird, sollen bestimmte sachen auf der ersten Seite verschwinden. Ich bin ein Anfänger und bin dankbar für jede Hilfe.

hier der ganze Code aus dem Thread Druck: DataGridView beginnt zu tief auf der Seite

Vielen Dank im vorraus

Maffi

F
10.010 Beiträge seit 2004
vor 9 Jahren
  1. Man druckt kein DataGridView sondern die gebunden Daten.

  2. Wird dir jedes Tutorial zu Drucken sagen das deine Schleife

 while (iRow <= DgVmetallarten.Rows.Count - 1)

Da vollkommen fehl am platze ist.
Drucken über mehrere Seite klappt nicht

Maffi1986 Themenstarter:in
53 Beiträge seit 2012
vor 9 Jahren

Hallo Fzelle,

vielen Dank für deine Antwort, diese Schleife hat aber nicht mit dem Seitenende zu tun oder? Falls noch nicht erwähnt, meine C# kenntnisse halten sich noch in Grenzen, den Code fürs drucken habe ich auch nur aus einem Tutorial, dort war die Schleife bereits drin. Vom gefühl würde ich sagen, das es irgendwas hiermit zu tun haben muss


if (iTopMargin + iCellHeight >= e.MarginBounds.Height + e.MarginBounds.Top)
                    {
                        bNewPage = true;
                        bFirstPage = false;
                        bMorePagesToPrint = true;
                        break;
                    }

1.815 Beiträge seit 2005
vor 9 Jahren

Hallo Maffi1986,

wenn du druckst, hast du ja in den Eventargumenten eine Eigenschaft MorePages (oder so ähnlich). Diese muss auf true gesetzt werden, wenn noch weitere Seiten zu drucken sind. Du musst dir in einer internen variable merken, welche Zeile du zuletzt gedruckt hast, und dann beim nächsten Aufruf diese als Basis für die weiteren Zeilen nehmen.

Am Rande bemerkt, ist Drucken auch nicht gerade das beste Thema, um in C# einzusteigen, da es doch ein sehr komplexes Thema ist.

Nobody is perfect. I'm sad, i'm not nobody 🙁