Freigeben über


PrintDocument.QueryPageSettings-Ereignis

Tritt unmittelbar vor jedem PrintPage-Ereignis ein.

Namespace: System.Drawing.Printing
Assembly: System.Drawing (in system.drawing.dll)

Syntax

'Declaration
Public Event QueryPageSettings As QueryPageSettingsEventHandler
'Usage
Dim instance As PrintDocument
Dim handler As QueryPageSettingsEventHandler

AddHandler instance.QueryPageSettings, handler
public event QueryPageSettingsEventHandler QueryPageSettings
public:
event QueryPageSettingsEventHandler^ QueryPageSettings {
    void add (QueryPageSettingsEventHandler^ value);
    void remove (QueryPageSettingsEventHandler^ value);
}
/** @event */
public void add_QueryPageSettings (QueryPageSettingsEventHandler value)

/** @event */
public void remove_QueryPageSettings (QueryPageSettingsEventHandler value)
JScript unterstützt die Verwendung von Ereignissen, aber nicht die Deklaration von neuen Ereignissen.

Hinweise

Jede Seite eines Dokuments kann mit unterschiedlichen Seiteneinstellungen gedruckt werden. Sie legen Seiteneinstellungen fest, indem Sie einzelne Eigenschaften der QueryPageSettingsEventArgs.PageSettings-Eigenschaft festlegen oder indem Sie die Eigenschaft auf PageSettings festlegen. Änderungen an PageSettings betreffen nur die aktuelle Seite, nicht die Standardseiteneinstellungen des Dokuments. Der Druckauftrag kann auch abgebrochen werden, indem die Cancel-Eigenschaft für QueryPageSettingsEventArgs auf true festgelegt wird.

Fügen Sie dem Ereignis eine Instanz des QueryPageSettingsEventHandler-Delegaten hinzu, um dem Ereignishandler das Ereignis zuzuordnen. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen. Weitere Informationen zum Behandeln von Ereignissen mit Delegaten finden Sie unter Ereignisse und Delegaten.

Beispiel

Im folgenden Codebeispiel wird ein Dokument gedruckt, wobei die erste Seite in Farbe gedruckt wird, sofern der Drucker dies unterstützt. Bei diesem Beispiel muss zuvor eine PrintDocument-Variable mit dem Namen printDoc erstellt werden. Außerdem müssen das PrintPage-Ereignis und das QueryPageSettings-Ereignis behandelt werden. Die currentPageNumber-Variable wird nach dem Drucken jeder Seite im PrintPage-Ereignis entsprechend erhöht (hier nicht gezeigt).

Verwenden Sie für dieses Beispiel den System.Drawing-Namespace und den System.Drawing.Printing-Namespace.

Private Sub MyButtonPrint_OnClick(ByVal sender As Object, ByVal e As System.EventArgs)

    ' Set the printer name and ensure it is valid. If not, provide a message to the user.
    printDoc.PrinterSettings.PrinterName = "\\mynetworkprinter"

    If printDoc.PrinterSettings.IsValid Then

        ' If the printer supports printing in color, then override the printer's default behavior.
        if printDoc.PrinterSettings.SupportsColor then

            ' Set the page default's to not print in color.
            printDoc.DefaultPageSettings.Color = False
        End If

        ' Provide a friendly name, set the page number, and print the document.
        printDoc.DocumentName = "My Presentation"
        currentPageNumber = 1
        printDoc.Print()
    Else
        MessageBox.Show("Printer is not valid")
    End If
End Sub

Private Sub MyPrintQueryPageSettingsEvent(ByVal sender As Object, ByVal e As QueryPageSettingsEventArgs)

    ' Determines if the printer supports printing in color.
    If printDoc.PrinterSettings.SupportsColor Then

        ' If the printer supports color printing, use color.
        If currentPageNumber = 1 Then

            e.PageSettings.Color = True
        End If

    End If
End Sub
private void MyButtonPrint_OnClick(object sender, System.EventArgs e)
{
    
    // Set the printer name and ensure it is valid. If not, provide a message to the user.
    printDoc.PrinterSettings.PrinterName = "\\mynetworkprinter";

    if (printDoc.PrinterSettings.IsValid) {
    
        // If the printer supports printing in color, then override the printer's default behavior.
        if (printDoc.PrinterSettings.SupportsColor) {

            // Set the page default's to not print in color.
            printDoc.DefaultPageSettings.Color = false;
        }

        // Provide a friendly name, set the page number, and print the document.
        printDoc.DocumentName = "My Presentation";
        currentPageNumber = 1;
        printDoc.Print();
    }
    else {
        MessageBox.Show("Printer is not valid");
    }
}

private void MyPrintQueryPageSettingsEvent(object sender, QueryPageSettingsEventArgs e)
{
    // Determines if the printer supports printing in color.
    if (printDoc.PrinterSettings.SupportsColor) {

        // If the printer supports color printing, use color.
        if (currentPageNumber == 1 ) {

            e.PageSettings.Color = true;
        }

    }    
}
private:
   void MyButtonPrint_OnClick( Object^ sender, System::EventArgs^ e )
   {
      // Set the printer name and ensure it is valid. If not, provide a message to the user.
      printDoc->PrinterSettings->PrinterName = "\\mynetworkprinter";
      if ( printDoc->PrinterSettings->IsValid )
      {
         // If the printer supports printing in color, then override the printer's default behavior.
         if ( printDoc->PrinterSettings->SupportsColor )
         {
            // Set the page default's to not print in color.
            printDoc->DefaultPageSettings->Color = false;
         }

         // Provide a friendly name, set the page number, and print the document.
         printDoc->DocumentName = "My Presentation";
         currentPageNumber = 1;
         printDoc->Print();
      }
      else
      {
         MessageBox::Show( "Printer is not valid" );
      }
   }

   void MyPrintQueryPageSettingsEvent( Object^ sender, QueryPageSettingsEventArgs^ e )
   {
      // Determines if the printer supports printing in color.
      if ( printDoc->PrinterSettings->SupportsColor )
      {
         // If the printer supports color printing, use color.
         if ( currentPageNumber == 1 )
         {
            e->PageSettings->Color = true;
         }
      }
   }
private void myButtonPrint_OnClick(Object sender, System.EventArgs e)
{
    // Set the printer name and ensure it is valid. If not,
    // provide a message to the user.
    printDoc.get_PrinterSettings().set_PrinterName("\\mynetworkprinter");

    if (printDoc.get_PrinterSettings().get_IsValid()) {
        // If the printer supports printing in color, then 
        // override the printer's default behavior.
        if (printDoc.get_PrinterSettings().get_SupportsColor()) {
            // Set the page default's to not print in color.
            printDoc.get_DefaultPageSettings().set_Color(false);
        }
        // Provide a friendly name, set the page number, and print
        // the document.
        printDoc.set_DocumentName("My Presentation");
        currentPageNumber = 1;
        printDoc.Print();
    }
    else {
        MessageBox.Show("Printer is not valid");
    }
} //myButtonPrint_OnClick

private void MyPrintQueryPageSettingsEvent(Object sender, 
    QueryPageSettingsEventArgs e)
{
    // Determines if the printer supports printing in color.
    if (printDoc.get_PrinterSettings().get_SupportsColor()) {
        // If the printer supports color printing, use color.
        if (currentPageNumber == 1) {
            e.get_PageSettings().set_Color(true);
        }
    }
} //MyPrintQueryPageSettingsEvent

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

PrintDocument-Klasse
PrintDocument-Member
System.Drawing.Printing-Namespace
QueryPageSettingsEventHandler
PrintPageEventArgs
PrintDocument.BeginPrint-Ereignis
PrintDocument.EndPrint-Ereignis
PrintDocument.PrintPage-Ereignis