Teilen über


PrintDocument.QueryPageSettings Ereignis

Definition

Tritt unmittelbar vor jedem PrintPage-Ereignis ein.

public:
 event System::Drawing::Printing::QueryPageSettingsEventHandler ^ QueryPageSettings;
public event System.Drawing.Printing.QueryPageSettingsEventHandler QueryPageSettings;
member this.QueryPageSettings : System.Drawing.Printing.QueryPageSettingsEventHandler 
Public Custom Event QueryPageSettings As QueryPageSettingsEventHandler 

Ereignistyp

Beispiele

Im folgenden Codebeispiel wird ein Dokument mit der ersten Seite in Farbe gedruckt, sofern dies vom Drucker unterstützt wird. Das Beispiel erfordert, dass eine PrintDocument Variable mit dem Namen printDoc erstellt wurde und die PrintPage Ereignisse und QueryPageSettings behandelt werden. Die currentPageNumber Variable wird erhöht, nachdem jede Seite im PrintPage -Ereignis gedruckt wurde, das nicht angezeigt wird.

Verwenden Sie die System.Drawing Namespaces und System.Drawing.Printing für dieses Beispiel.

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.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 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

Hinweise

Es ist möglich, jede Seite eines Dokuments mit unterschiedlichen Seiteneinstellungen zu drucken. Sie legen Seiteneinstellungen fest, indem Sie einzelne Eigenschaften der QueryPageSettingsEventArgs.PageSettings -Eigenschaft ändern oder die -Eigenschaft auf festlegen PageSettings. Änderungen, die PageSettings am vorgenommen werden, betreffen nur die aktuelle Seite, nicht die Standardseiteneinstellungen des Dokuments. Der Druckauftrag kann auch abgebrochen werden, indem die Cancel -Eigenschaft auf true für festgelegt QueryPageSettingsEventArgswird.

Um das Ereignis Ihrem Ereignishandler zuzuordnen, fügen Sie dem Ereignis eine instance des QueryPageSettingsEventHandler Delegaten hinzu. Der Ereignishandler wird immer dann aufgerufen, wenn das Ereignis auftritt. Weitere Informationen zum Behandeln von Ereignissen mit Delegaten finden Sie unter Behandeln und Auslösen von Ereignissen.

Wenn Sie das QueryPageSettings-Ereignis verwenden, um die Druckereinstellungen zu ändern, verbessert sich die Leistung des PrintPreviewDialog-Steuerelements nicht, selbst wenn ein Optimierungskonfigurationsschalter festgelegt ist. Weitere Informationen finden Sie unter Übersicht über das PrintPreviewDialog-Steuerelement.

Gilt für:

Weitere Informationen