Printdialog, wie kann ich die Einstellungen abfragen?

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Printdialog, wie kann ich die Einstellungen abfragen?

    Guten Tag!
    Ich bin noch beim Drucken meines Datagridviews. Im Printdialog kann ich anclicken, ob alle Seiten, oder nur ausgewählte gedruckt werden sollen. Die Abfrage, welche Option gewählt wurde, habe ich mir so zurechtgelegt und es funkioniert auch so. Der Eintrag in die Listbox dient hier nur zur Kontrolle.

    VB.NET-Quellcode

    1. Select Case PageSetupDialog1.PrinterSettings.PrintRange
    2. Case 0
    3. ListBox1.Items.Add("> AllPages")
    4. Case CType(1, Printing.PrintRange)
    5. ListBox1.Items.Add("> Selection")
    6. Case CType(2, Printing.PrintRange)
    7. ListBox1.Items.Add("> Seiten ..")
    8. Case Else
    9. ListBox1.Items.Add("akt.Seite")
    10. End Select


    Diese Verzweigung würde ich in der Sub PrintDocument1_PrintPage verwenden, um den Ausdruck wie gewünscht darzustellen.
    Ich möchte nun gerne wissen, ob es eine andere, einfachere Möglichkeit gibt.

    Vielen Dank für Eure Bemühungen!
    el
    Informiere dich über Enumerationen, etwa dieses Buch lesen (hingegen das Galileio-Openbook ist Mist)
    Typumwandlungen sind meist ein DesignFehler, der Umgang mit der PrintRange-Enumeration ist wohl eher so gedacht:

    VB.NET-Quellcode

    1. Select Case PageSetupDialog1.PrinterSettings.PrintRange
    2. Case Printing.PrintRange.AllPages
    3. '...
    4. Case Printing.PrintRange.Selection
    5. '...
    6. Case Printing.PrintRange.SomePages
    7. '...
    8. Case Printing.PrintRange.CurrentPage
    9. '...
    10. End Select
    11. 'Und in die Listbox gehts bei jedem PrintRange auf gleiche Weise, daher kommt diese Zeile ausserhalb des Selects
    12. ListBox1.Items.Add(PageSetupDialog1.PrinterSettings.PrintRange)
    Hallo!
    Vielen Dank für Deine Antwort!
    Nun habe ich noch 2 Fragen zum Printdialog
    1. wie kann ich abfragen, ob die "Abbrechen-Taste" gedrückt wurde?
    2. im Printdialog möchte ich nicht die Seiten, sondern die Zeilen des Datagridviews angeben, den Code dazu habe ich schon. Kann ich im Printdialog-Feld auch das Wort "Seiten" durch "Zeilen" ersetzen?

      Vielen Dank!
      Freundliche Grüße
      el
    @VB-and-Me:
    zu 1.

    VB.NET-Quellcode

    1. Using dlg As New PrintDialog
    2. dlg.PROPERTY_X = x
    3. If dlg.ShowDialog() <> DialogResult.OK Then
    4. Return
    5. End If
    6. y = dlg.PROPERTY_Y
    7. End Using

    zu 2.
    Nein.
    -------------
    @LaMiy: Fast. ;(
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB-and-Me schrieb:

    die sich direkt auf den Abbrechen-Button bezieht
    Wieviele Button hat denn dieser Dialog? :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!