Announcement

Collapse
No announcement yet.

PrintDocument automatischen dialog verbergen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • PrintDocument automatischen dialog verbergen

    Hallo!

    Hätte da eine Frage bezüglich Drucken in einer C# WindowsForm.
    Versuche zurzeit ein Bild zu drucken. Habe ein printdocument erstellt und drucke es mit einem klick auf einen button. nach dem klick erscheint dann ein dialog "...Seite 1 von 1 wird gedruckt...". Gibt es vielleicht ne möglichkeit diesen dialog nicht anzeigen zu lassen?
    Das Drucken an sich funktioniert.

    private void pdoc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
    Graphics g = e.Graphics;
    g.DrawImage(Image.FromFile(@"C:\bilder\bild.bmp"), 0, 0);
    }

    private void button1_Click(object sender, EventArgs e)
    {
    pdoc.Print();
    }

    mfg Andreas

  • #2
    Hallo Andreas,
    Originally posted by Maier Andreas View Post
    nach dem klick erscheint dann ein dialog "...Seite 1 von 1 wird gedruckt...". Gibt es vielleicht ne möglichkeit diesen dialog nicht anzeigen zu lassen?
    Ich bin mir nicht sicher, ob und wie diese Anzeige zu unterdrücken ist. Laut SDK-Doku gibt es verschiedene PrintController: einen für die Vorschau und zwei zum Drucken, nämlich StandardPrintController und PrintControllerWithStatusDialog. Vielleicht erreichst Du Deinen Zweck, wenn Du ausdrücklich den StandardPrintController dem PrintDocument zuweist. Jürgen

    PS. Code liest sich besser, wenn er mit dem '#'-Button markiert wird.

    Comment


    • #3
      Originally posted by Jürgen Thomas View Post
      Ich bin mir nicht sicher, ob und wie diese Anzeige zu unterdrücken ist.
      Es ist so, wie Du's sagst. Die Zuweisung eines StandardPrintControllers oder einer Klasse, die von StandardPrintController abgeleitet ist, wird die Anzeige des Status-Dialogs unterdrücken. Persönlich neige ich eher zur Ableitung einer eigenen Klasse, in der man dann den Status kontrollieren und z.B. in einem ToolStripStatusLabel ausgeben kann (dazu macht man dann ein Override von OnStartPrint, OnStartPage, OnEndPage, OnEndPrint).

      Das Drucken bleibt jedoch weiterhin "Drucken im Vordergrund", d.h. die UI blockiert so lange, bis der Druckauftrag erledigt ist. Ist das nicht gewünscht, muss das Drucken in eine background Thread implementiert werden.

      Comment

      Working...
      X