forodo
یک شنبه 26 مرداد 1393, 18:11 عصر
سلام
من با کدهای زیر از فرم پرینت می گیرم ولی بعضی از فرمهام که کامل پیدا نیست و با Scroll بالا و پایین می شه فقط اون قسمتی که در حال نمایش هست رو پرینت می گیره.
چیکار می تونم بکنم که تمام فرم رو در اون حالت پرینت بگیره؟
با تشکر
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
PrintFromForm PFF = new PrintFromForm();
PFF.pprriinntt(this, printDocument1, e);
}
public void pprriinntt(Form f, PrintDocument pd, PrintPageEventArgs e)
{
Bitmap b = new Bitmap(f.Width, f.Height);
int newWidth = (int)pd.DefaultPageSettings.PrintableArea.Width;
int newHeight = (int)pd.DefaultPageSettings.PrintableArea.Height;
f.DrawToBitmap(b, new Rectangle(0, 0, f.Width, f.Height));
e.Graphics.DrawImage(b, new Rectangle(0, 0, newWidth, newHeight), new Rectangle(0, 0, b.Width, b.Height), GraphicsUnit.Pixel);
}
private void btnPrint1_Click(object sender, EventArgs e)
{
PrintFromForm PFF = new PrintFromForm();
PFF.pprriinntt(this, printDocument1, printDialog1, false);
}
public void pprriinntt(Form f, PrintDocument dp, PrintDialog p, bool b)
{
foreach (Control ctrl in f.Controls)
{
if (ctrl.GetType().Name.ToString() == "Button")
{
ctrl.Visible = false;
}
}
f.FormBorderStyle = FormBorderStyle.None;
p.ShowDialog();
dp.Print();
if (b)
{
f.Close();
}
else
{
foreach (Control ctrl in f.Controls)
{
if (ctrl.GetType().Name.ToString() == "Button")
{
ctrl.Visible = true;
}
}
f.FormBorderStyle = FormBorderStyle.FixedSingle;
}
}
من با کدهای زیر از فرم پرینت می گیرم ولی بعضی از فرمهام که کامل پیدا نیست و با Scroll بالا و پایین می شه فقط اون قسمتی که در حال نمایش هست رو پرینت می گیره.
چیکار می تونم بکنم که تمام فرم رو در اون حالت پرینت بگیره؟
با تشکر
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
PrintFromForm PFF = new PrintFromForm();
PFF.pprriinntt(this, printDocument1, e);
}
public void pprriinntt(Form f, PrintDocument pd, PrintPageEventArgs e)
{
Bitmap b = new Bitmap(f.Width, f.Height);
int newWidth = (int)pd.DefaultPageSettings.PrintableArea.Width;
int newHeight = (int)pd.DefaultPageSettings.PrintableArea.Height;
f.DrawToBitmap(b, new Rectangle(0, 0, f.Width, f.Height));
e.Graphics.DrawImage(b, new Rectangle(0, 0, newWidth, newHeight), new Rectangle(0, 0, b.Width, b.Height), GraphicsUnit.Pixel);
}
private void btnPrint1_Click(object sender, EventArgs e)
{
PrintFromForm PFF = new PrintFromForm();
PFF.pprriinntt(this, printDocument1, printDialog1, false);
}
public void pprriinntt(Form f, PrintDocument dp, PrintDialog p, bool b)
{
foreach (Control ctrl in f.Controls)
{
if (ctrl.GetType().Name.ToString() == "Button")
{
ctrl.Visible = false;
}
}
f.FormBorderStyle = FormBorderStyle.None;
p.ShowDialog();
dp.Print();
if (b)
{
f.Close();
}
else
{
foreach (Control ctrl in f.Controls)
{
if (ctrl.GetType().Name.ToString() == "Button")
{
ctrl.Visible = true;
}
}
f.FormBorderStyle = FormBorderStyle.FixedSingle;
}
}