PDA

View Full Version : روش فرستادن e به یک کلاس یا تابع



forodo
دوشنبه 10 تیر 1392, 10:51 صبح
کد زیر در قسمت e از من ایراد می گیرد.
چطور می توانم آرگومان e را به یک کلاس یا تابع بفرستم؟؟؟


publicvoid pprriinntt(Form f){
Bitmap b = new Bitmap(f.Width, f.Height);f.DrawToBitmap(b,
new Rectangle(0, 0, f.Width, f.Height));
e.Graphics.DrawImage(b, new Point(0, 0));
}

forodo
دوشنبه 10 تیر 1392, 12:00 عصر
کمکم کنید!

Mahmoud.Afrad
دوشنبه 10 تیر 1392, 14:02 عصر
میخوای روی فرم بکشی؟ برای هر کنترل میتونی از طریق متدcreategraphics شئ گرافیک اون کنترل رو استفاده کنی:

public void pprriinntt(Form f)
{
Bitmap b = new Bitmap(f.Width, f.Height);
f.DrawToBitmap(b, new Rectangle(0, 0, f.Width, f.Height));
Graphics g = f.CreateGraphics();
g.DrawImage(b, new Point(0, 0));
}

forodo
دوشنبه 10 تیر 1392, 22:18 عصر
این کدای منه.

private void btnPrint_Click(object sender, EventArgs e)
{
printDialog1.ShowDialog();
printDocument1.Print();
}




private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Bitmap b = newBitmap(this.panel1.Width, this.panel1.Height);
this.panel1.DrawToBitmap(b, newRectangle(0, 0, this.panel1.Width, this.panel1.Height));
e.Graphics.DrawImage(b, new Point(0, 0));
}



می خوام تمام این کدهارو ببرم تو کلاس ولی با e مشکل دارم نمی دونم چطوری باید اونو بفرستم به ورودی تابعم.
دروغ نگم نتونستم کدی که شما گذاشتید رو امتحان کنم اگر هم چیزی باشه که من می خوام کلاً می خوام بدونم چطوری میشه e رو به یه تابع فرستاد؟؟؟
لطفاً کمکم کنید.

erfan_urchin
سه شنبه 11 تیر 1392, 01:56 صبح
خب خیلی راحت میتونی یه ورودی به متد بدی و ازش استفاده کنی
یعنی اینجوری:
public void pprriinntt(Form f, System.Drawing.Printing.PrintPageEventArgs e)
{
Bitmap bm = new Bitmap(f.Width, f.Height);
f.DrawToBitmap(bm, new Rectangle(0, 0, f.Width, f.Height));
e.Graphics.DrawImage(bm, 0, 0);
}
به همین راحتی میتونید e رو به عنوان یه ورودی ازسال کنید و برای فراخوانی این متد هم در printDocument1_PrintPage از این کد استفاده کنید( فرض کنید میخواین از Form1 پرینت بگیرین)
pprriinntt(Form1, e);
اگه سوالی هست در خدمتم