PrintDocument.QueryPageSettings Olay

Tanım

Her PrintPage olaydan hemen önce gerçekleşir.

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 

Olay Türü

Örnekler

Aşağıdaki kod örneği, yazıcı destekliyorsa ilk sayfa renkli bir belge yazdırır. Örnek, adlı printDoc bir PrintDocument değişkenin oluşturulmasını ve ve QueryPageSettings olaylarının işlenmesini PrintPage gerektirir. Değişken currentPageNumber , olaydaki PrintPage her sayfa yazdırıldıktan sonra artırılır ve gösterilmez.

System.Drawing Bu örnek için ve System.Drawing.Printing ad alanlarını kullanın.

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

Açıklamalar

Belgenin her sayfasını farklı sayfa ayarları kullanarak yazdırmak mümkündür. Sayfa ayarlarını, özelliğin QueryPageSettingsEventArgs.PageSettings tek tek özelliklerini değiştirerek veya özelliğini olarak PageSettingsayarlayarak ayarlarsınız. 'de yapılan değişiklikler belgenin PageSettings varsayılan sayfa ayarlarını değil, yalnızca geçerli sayfayı etkiler. Yazdırma işi için özelliği trueQueryPageSettingsEventArgsolarak ayarlanarak Cancel da iptal edilebilir.

Olayı olay işleyicinizle ilişkilendirmek için olaya temsilcinin QueryPageSettingsEventHandler bir örneğini ekleyin. Olay her gerçekleştiğinde olay işleyicisi çağrılır. Olayları temsilcilerle işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Yazıcı ayarlarını değiştirmek için olayını kullanırsanız QueryPageSettings , bir iyileştirme yapılandırma anahtarı ayarlansa bile denetimin PrintPreviewDialog performansı iyileşmez. Daha fazla bilgi için bkz. PrintPreviewDialog denetimine genel bakış.

Şunlara uygulanır

Ayrıca bkz.