by Timur
24. Kasım 2011 09:51
Merhaba.
PrintPreviewDialog içerisinde yazıcı ayarlarını yapabilmek için, bu dialog içerisindeki ToolStrip'e erişip, istediğimiz bir ToolStripButton'u koyabiliriz. Bu ToolStripButton'un click event'inde de gerekli ayarlamaları yapabiliriz.
ToolStripButton button = new ToolStripButton();
button.Height = 22;
button.Click += new EventHandler(button_Click);
button.Text = Properties.Resources.Txt_PrinterSettings;
PrintPreviewDialog dialog = new PrintPreviewDialog();
((Form)dialog).WindowState = FormWindowState.Maximized;
for (int i = 0; i < dialog.Controls.Count; i++)
{
if (dialog.Controls[i] is ToolStrip)
{
ToolStrip strip = dialog.Controls[i] as ToolStrip;
strip.Items.Add(button);
break;
}
}
PrintDocument document = new PrintDocument();
document.PrintPage += new PrintPageEventHandler(document_PrintPage);
dialog.Document = document;
dialog.ShowDialog();
button.Click -= new EventHandler(button_Click);
button.Dispose();
button = null;
void button_Click(object sender, EventArgs e)
{
PrintPreviewDialog preview = ((ToolStripButton)sender).GetCurrentParent().Parent as PrintPreviewDialog;
if (preview != null)
{
using (PrintDialog dialog = new PrintDialog())
{
dialog.PrinterSettings.PrinterName = preview.Document.PrinterSettings.PrinterName;
if (dialog.ShowDialog() == DialogResult.OK)
{
preview.Document.PrinterSettings.Copies = dialog.PrinterSettings.Copies;
preview.Document.PrinterSettings.PrinterName = dialog.PrinterSettings.PrinterName;
}
}
}
}
e92f0b45-3b60-4ce6-a173-3e919e82a4db|0|.0
Tags: C#, WinForm, .Net