vou ser mais especifico
para abrir o PrintPreviewDialog basta fazer
PrintPreviewDialog.ShowDialog()
Certo?
Pois, bem!
Quando eu fecho o dialogo que se abre, com,o faço para descarregar os dados carregados carregados para evitar o caso de que sew clikar novamente no mesmo botão que deu origem ao ShowDialog() carregar dados em, duplicidade!
Inclusive, se observar bem, até mesmo botões que são adicionados ao tolbox da printpreview são mostrados em duplicidade!