PDA

View Full Version : سوال: معنی این خط کد چیه ؟



maryshayegh
یک شنبه 19 دی 1389, 21:39 عصر
Graphics graphics = this.CreateGraphics();

unknown.unforgiven
یک شنبه 19 دی 1389, 22:35 عصر
سلام
فرمت رو به حالت گرافیکی در میاره، یعنی میتونی توش کارای گرافیکی مثل کشیدن خط، دایره و ... رو بکنی

maryshayegh
یک شنبه 19 دی 1389, 22:55 عصر
سلام ، لطفا دقیق تر بفرمائین ،
ما یه شی از کلاس گرافیک تعریف کردیم ولی فضایی به اون اختصاص ندادیم و به جای new نو شتیم this.CreateGraphics اگه امکان داره بفرمائین این متد چه کار میکنه ؟ ممنون

unknown.unforgiven
یک شنبه 19 دی 1389, 23:15 عصر
this.creategraphics شی ای که بر میگردونه از نوع graphic هست، به همین خاطر لازم نیست new بکنی. مثل این میمونه که یه رشته تعریف کردی ولی هنوز new نکردیش، بعد وقتی کاربر یه رشته میده بهش خود برنامه میاد طول رشته رو بهش میده و دیگه احتیاجی به new کردن نیست. حالا تو این خط اومدیم نوشتیم که یه شی به نام graphics از نوع کلاس Graphics درست کن و بعدشم گفتیم که این شی حالت گرافیکی فرم باشه (this.creategraphics). حالا میتونی از این شی واسه کشیدن اشکال گرافیکی استفاده بکنی و چون شی حالت گرافیکی فرم هستش هرچی رو شی بکشی رو فرم نشونت میده. مثلاً این کد رو بزن


graphics.DrawLine(Pens.Red, 0, 0, 50, 50);

تو این لینک (http://msdn.microsoft.com/en-us/library/system.drawing.graphics_methods.aspx) همه متد ها رو نوشته

rezatati
یک شنبه 19 دی 1389, 23:15 عصر
ببینین دوست عزیز شما وقتی که یک شی از کلاس گرافیک تعریف کردین با تابع . CreateGraphics دقیقا یک نمونه که از نوع گرافیک هستش رو میسازه ولی با این تفاوت که این نمونه به طور عامیانه به شیی که دیس اشاره میکنه وصل میشه یعنی الان شما یک شی از نوع گرافیک دارین که مثلا به فرمتون وصل هستش و برای درک بهتر این کدی که نوشتم رو توی رویداد paint فرمتون بنویسین تابهتر متوجه بشین


private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics gr = this.CreateGraphics();
gr.DrawLine(new Pen(Color.Red), 0, 0, 200, 200);
}

2ndesigner
یک شنبه 19 دی 1389, 23:16 عصر
با دستور this.CreateGraphics شما this را به عنوان محیط رسم گرافیک معرفی کردید . به طور مثال Graphics G = panel1.CreateGraphics (در این دستور panel1 محیط رسم گرافیگ مربوط به G می باشد).

2ndesigner

shuriken
دوشنبه 20 دی 1389, 14:33 عصر
بطور خلاصه باید بگم
شما هروقت میخواین یک کار گرافیکی انجام بدین به محیطی نیاز دارین که
کارهای گرافیکیتون روی اون محیط (کنترل ) اعمال بشه.
هر کنترلی که امکان انجام کار گرافیکی در اون وجود داره شامل تابع CreateGraphics() هست.
که با استفاده از این تابع به شی Graphics اتون میگید که دستوراتیرو که برای طرح گرافیکیتون مینویسین روی اون کنترل رسم بشه.
امیدوارم واضح گفته باشم.
اگه بازم مشکلی بود بپرسین