hakan47 sorunun çözümü için iki yöntemim var .
Birincisi şu şekilde:

private void button2_Click(object sender, System.EventArgs e)
{
PrintDialog printDialog1 = new PrintDialog();
printDialog1.Document = printDocument1;
DialogResult result = printDialog1.ShowDialog();
if (result == DialogResult.OK)
{
printDocument1.Print();
}
}
İkincisi bu şekilde :
Bu kaynaktan alınmıştır
PrintPreview iletişim kutusundan bir yazdırma iletişim kutusu istiyorsanız, sadece PrintPreviewDialog ToolStrip değiştirebilirsiniz.
İşte başlar (printPreviewDialog1, printDialog1 ve printDocument1 nesnelerini başlattığınızı varsayarsak)
printPreviewDialog1.Document = printDocument1;
ToolStripButton b = new ToolStripButton();
b.Image = Properties.Resources.PrintIcon;
b.DisplayStyle = ToolStripItemDisplayStyle.Image;
b.Click += printPreview_PrintClick;
((ToolStrip)(printPreviewDialog1.Controls[1])).Items.RemoveAt(0);
((ToolStrip)(printPreviewDialog1.Controls[1])).Items.Insert(0, b);
printPreviewDialog1.ShowDialog();
Yukarıdaki kodu kullanarak, PrintPreview'un Araç Çubuğu'ndaki varsayılan baskı düğmesini kaldırabilir ve yeni oluşturulan "baskı düğmesi" ile değiştirebilirsiniz. Bu düğme artık bir Click olayı işleyicisi içeriyor ve onu kullanarak PrintDialog'u gösterebilirsiniz.
private void printPreview_PrintClick(object sender, EventArgs e)
{
try
{
printDialog1.Document = printDocument1;
if (printDialog1.ShowDialog() == DialogResult.OK)
{
printDocument1.Print();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, ToString());
}
}