Partilhar via


Visão geral do controle PrintPreviewDialog (Windows Forms)

O controle Windows Forms é uma caixa de diálogo pré-configurada usada para exibir como um PrintDocument aparecerá quando impresso. Use-o em seu aplicativo baseado no Windows como uma solução simples em vez de configurar sua própria caixa de diálogo. O controle contém botões para imprimir, ampliar, exibir uma ou várias páginas e fechar a caixa de diálogo.

Principais propriedades e métodos

A propriedade de chave do controle é Document, que define o documento a ser visualizado. O documento deve ser um objeto PrintDocument. Para exibir a caixa de diálogo, você deve chamar seu método ShowDialog. A suavização pode fazer com que o texto pareça mais suave, mas também pode reduzir a velocidade de exibição; para usá-la, defina a propriedade UseAntiAlias para true.

Algumas propriedades estão disponíveis através do PrintPreviewControl, que o PrintPreviewDialog contém. (Não é necessário adicionar esse PrintPreviewControl ao formulário; ele é automaticamente contido no PrintPreviewDialog quando você adiciona a caixa de diálogo ao formulário.) Exemplos de propriedades disponíveis através do PrintPreviewControl são as propriedades Columns e Rows, que determinam o número de páginas exibidas horizontal e verticalmente no controle. Você pode acessar a propriedade Columns como PrintPreviewDialog1.PrintPreviewControl.Columns no Visual Basic, printPreviewDialog1.PrintPreviewControl.Columns no Visual C# ou printPreviewDialog1->PrintPreviewControl->Columns no Visual C++.

Desempenho de PrintPreviewDialog

Sob as seguintes condições, o controle PrintPreviewDialog inicializa muito lentamente:

  • Uma impressora de rede é usada.
  • As preferências do usuário para esta impressora, como as configurações de impressão frente e verso, são modificadas.

Para aplicativos executados no .NET Framework 4.5.2, você pode adicionar a seguinte chave à seção <appSettings> do seu arquivo de configuração para melhorar o desempenho da inicialização do controle de PrintPreviewDialog:

<appSettings>
   <add key="EnablePrintPreviewOptimization" value="true" />
</appSettings>

Se a chave EnablePrintPreviewOptimization estiver definida como qualquer outro valor, ou se a chave não estiver presente, a otimização não será aplicada. Essa chave não terá efeito se o aplicativo estiver sendo executado no .NET Framework 4.6 ou posterior.

Para aplicativos executados no .NET Framework 4.6 ou versões posteriores, você pode adicionar a seguinte opção ao elemento AppContextSwitchOverrides na seção de tempo de execução do do arquivo de configuração do aplicativo:

<runtime >
   <!-- AppContextSwitchOverrides values are in the form of 'key1=true|false;key2=true|false -->
   <AppContextSwitchOverrides value = "Switch.System.Drawing.Printing.OptimizePrintPreview=true" />
</runtime >

Se o switch não estiver presente ou se estiver definido para qualquer outro valor, a otimização não será aplicada.

Se você usar o evento QueryPageSettings para modificar as configurações da impressora, o desempenho do controle de PrintPreviewDialog não melhorará mesmo se uma opção de configuração de otimização estiver definida.

Ver também