Form Drucken

mgd-one

Erfahrenes Mitglied
Hallo zusammen,

kann mir jemand erklären wie ich ein Form ausdrucken kann bzw. den Inhalt. Ich habe eine Form in der die Informationenen einer E-Mail stehen (Von, An, Betreff und Text) und die Daten sollen als "E-Mail" ausgedruckt werden wenn ich auf einen Button clicke.

MfG mgd-one
 

Saber

Erfahrenes Mitglied
Hallo!

Ich weiss ned so recht was Du mit "Form" meinst, aber ich schätze mal nicht, dass Du wirklich die Form Deiner Applikation ausdrucken möchtest, oder?

Ich gehe jetzt mal davon aus, dass Du die E-Mail einfach zu Papier bringen möchtest. Dabei sollte Dir der nachfolgende Quelltext behilflich sein. Dabei zeichnet man die Ausgabe auf dem Papier selber, in dem man in einem Graphics-Objekt sagt was wo hinkommen soll und dann schickt man es an den Drucker.
Code:
private void pd_Printpage(object sender, PrintPageEventArgs e)
{
   // Feldname drucken
   e.Graphics.DrawString("Absender:", 
      new Font("Microsoft Sans Serif", 9.0f), 
      new SolidBrush(Color.Black), 
      100, 
      100);

   // Inhalt des Feldes ausdrucken
   e.Graphics.DrawString("mike1705@gmx.net", 
      new Font("Microsoft Sans Serif", 9.0f, FontStyle.Underline), 
      new SolidBrush(Color.Blue), 
      200, 
      100);
}

private void button1_Click(object sender, System.EventArgs e)
{
   PrintDocument pd = new PrintDocument();
   pd.PrintPage += new PrintPageEventHandler(pd_Printpage);

   // Dokument drucken
   pd.Print();
}


Als Ausgabe erhältst Du dann auf dem Papier:

Absender: mike1705@gmx.net

Vielleicht konnte Dir das ja irgendwie weiterhelfen. Wenn es nicht das war was Du haben wolltest, dann poste halt einfach nochmal. :)
 

mgd-one

Erfahrenes Mitglied
Das ist genau das was ich meine aber ich habe ein Problem er meldet volgenden Fehler:

"Der Typ oder Namespacename 'PrintPageEventArgs' ist in der Klasse oder dem Namespace 'System' nicht vorhanden (fehlt ein Assemblyverweis?)"

und meint damit:

private void pd_Printpage(object sender, PrintPageEventArgs e)

eoran liegt das

MfG mgd-one
 

mgd-one

Erfahrenes Mitglied
Cool Danke, aber gibts auch ne möglichkeit das über den standart Print Dialog von MS zu machen das man den Drucker ausfählen kann etc.?

MfG mgd-one
 

Saber

Erfahrenes Mitglied
PrintDialog
PrintPreviewControl
PrintPreviewDialog

Mit diesen drei Standard-VS.NET Steuerelementen kannst Du im wesentlichen die Drucksteuerung aus anderen Programmen nachbauen. :)
 

torkel

Mitglied
Saber hat gesagt.:
Hallo!

Code:
 private void pd_Printpage(object sender, PrintPageEventArgs e)
 {
    // Feldname drucken
    e.Graphics.DrawString("Absender:", 
       new Font("Microsoft Sans Serif", 9.0f), 
       new SolidBrush(Color.Black), 
       100, 
       100);
 
    // Inhalt des Feldes ausdrucken
    e.Graphics.DrawString("mike1705@gmx.net", 
       new Font("Microsoft Sans Serif", 9.0f, FontStyle.Underline), 
       new SolidBrush(Color.Blue), 
       200, 
       100);
 }
 
 private void button1_Click(object sender, System.EventArgs e)
 {
    PrintDocument pd = new PrintDocument();
    pd.PrintPage += new PrintPageEventHandler(pd_Printpage);
 
    // Dokument drucken
    pd.Print();
 }


Als Ausgabe erhältst Du dann auf dem Papier:

Absender: mike1705@gmx.net


Hi... sowas habe ich auch schon gesucht. es funktioniert einwandfrei. Ich habe allerdings noch eine Frage dazu.

Ich müsste mehrere TextBoxen und Labels drucken. Gibt es da die Möglichkeit, die Ausgabe ein bisschen zu formatieren? Wie kann ich z.B zentrieren, 2 Felder auf eine Linie nebeneinander stellen, dann nochmals 2 darunter, genau auf die gleiche Höhe? Ist dies möglich? Oder könnt ich hiermit auch ganze Panels printen?

wär cool, wenn mir da jemand ein paar Tips geben könnte.

greetz

Torkel