PrintDocument.QueryPageSettings Evento

Definición

Se produce justo antes de cada evento PrintPage.Occurs immediately before each PrintPage event.

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 

Ejemplos

En el ejemplo de código siguiente se imprime un documento con la primera página en color, si la impresora lo admite.The following code example prints a document with the first page in color, if the printer supports it. El ejemplo requiere que se PrintDocument haya creado printDoc una variable denominada y que los PrintPage eventos QueryPageSettings y se controlen.The example requires that a PrintDocument variable named printDoc has been created, and the PrintPage and QueryPageSettings events are handled. La currentPageNumber variable se incrementa después de que se imprima cada página en PrintPage el evento, que no se muestra.The currentPageNumber variable is incremented after every page is printed in the PrintPage event, which is not shown.

Use los System.Drawing espacios System.Drawing.Printing de nombres y para este ejemplo.Use the System.Drawing and System.Drawing.Printing namespaces for this example.

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

Comentarios

Es posible imprimir cada página de un documento con una configuración de página diferente.It is possible to print each page of a document using different page settings. Establezca la configuración de la página modificando las propiedades individuales QueryPageSettingsEventArgs.PageSettings de la propiedad o estableciendo la propiedad PageSettingsen.You set page settings by modifying individual properties of the QueryPageSettingsEventArgs.PageSettings property or by setting the property to a PageSettings. Los cambios realizados en PageSettings el solo afectan a la página actual, no a la configuración de página predeterminada del documento.Changes made to the PageSettings affect only the current page, not the document's default page settings. También se puede cancelar el trabajo de impresión si se establece Cancel la propiedad true en para QueryPageSettingsEventArgs.The print job can also be canceled by setting the Cancel property to true for the QueryPageSettingsEventArgs.

Para asociar el evento con el controlador de eventos, agregue una instancia QueryPageSettingsEventHandler del delegado al evento.To associate the event with your event handler, add an instance of the QueryPageSettingsEventHandler delegate to the event. Se llama al controlador de eventos cada vez que se produce el evento.The event handler is called whenever the event occurs. Para obtener más información sobre el control de eventos con delegados, vea controlar y provocar eventos.For more information about handling events with delegates, see Handling and Raising Events.

Si utiliza el QueryPageSettings evento para modificar la configuración de la PrintPreviewDialog impresora, el rendimiento del control no mejorará aunque se establezca un modificador de configuración de optimización.If you use the QueryPageSettings event to modify printer settings, the performance of the PrintPreviewDialog control will not improve even if an optimization configuration switch is set. Para obtener más información, vea PrintPreviewDialog (información general del control).For more information, see PrintPreviewDialog control overview.

Se aplica a

Consulte también: