Partager via


PrintDocument.QueryPageSettings Événement

Définition

Se produit immédiatement avant chaque événement PrintPage.

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 

Type d'événement

Exemples

L’exemple de code suivant imprime un document avec la première page en couleur, si l’imprimante le prend en charge. L’exemple exige qu’une PrintDocument variable nommée printDoc ait été créée et que les PrintPage événements et QueryPageSettings soient gérés. La currentPageNumber variable est incrémentée une fois que chaque page est imprimée dans l’événement PrintPage , qui n’est pas affiché.

Utilisez les espaces de System.Drawing noms et System.Drawing.Printing pour cet exemple.

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

Remarques

Il est possible d’imprimer chaque page d’un document à l’aide de paramètres de page différents. Vous définissez les paramètres de page en modifiant les propriétés individuelles de la QueryPageSettingsEventArgs.PageSettings propriété ou en définissant la propriété sur un PageSettings. Les modifications apportées au n’affectent PageSettings que la page active, et non les paramètres de page par défaut du document. Le travail d’impression peut également être annulé en définissant la Cancel propriété true sur pour le QueryPageSettingsEventArgs.

Pour associer l’événement à votre gestionnaire d’événements, ajoutez une instance du QueryPageSettingsEventHandler délégué à l’événement. Le gestionnaire d’événements est appelé chaque fois que l’événement se produit. Pour plus d’informations sur la gestion des événements avec des délégués, consultez Gestion et déclenchement d’événements.

Si vous utilisez l’événement QueryPageSettings pour modifier les paramètres de l’imprimante, les performances du PrintPreviewDialog contrôle ne s’améliorent pas même si un commutateur de configuration d’optimisation est défini. Pour plus d’informations, consultez Vue d’ensemble du contrôle PrintPreviewDialog.

S’applique à

Voir aussi