PDA

View Full Version : سوال: لزوم استفاده از كلاس در تعريف فرم



Administrative
چهارشنبه 07 بهمن 1394, 18:22 عصر
با سلام
در ابتدا كد مربوط به سوال رو مينويسم.


يك كلاس به نام Form1.cs ساختيم و كد هاي زير رو توي اون نوشتيم .



using System;
using System.Windows.Forms;
public class Form1:Form
{
public Form1()
{
در اينجا كنترل هارو اضافه ميكنيم و كاراي ديگه.

}
}
================================================== =================

در روش ديگر ميتونيم توي رويداد كليك يك دكمه يك فرم را تعريف كرده (بدون نياز به ساختن كلاس) و از آن استفاده كنيم .

با در نظر گرفتن ساختار و بدنه اصلي برنامه به طور مثال :



public void button1_click(object sender,EventArgs e)
}
Form frm=new Form();
Button btn=new Button();
frm.Controls.Add(btn);
frm.Show();
}

==================================================
چند روش ديگه هم هست ولي اينا چه فرقي باهم دارن و چرا ما يك كلاس براي اون ميسازيم؟
لطفا پاسخ ساده و سرسري نديد و يكم با جزئيات توضيح بديد دستتون درد نكنه .

alexmcse
چهارشنبه 07 بهمن 1394, 19:37 عصر
سلام
بخاطر اینکه زبان سی شارپ یک زبان شی گرا است (یعنی زمان ساخته شدن فرم )ماهیت فرم بوسیله new کردن به صورت یک شی واقعی در حافظه رم بوجود میآید

Administrative
پنج شنبه 08 بهمن 1394, 07:54 صبح
سلام
بخاطر اینکه زبان سی شارپ یک زبان شی گرا است (یعنی زمان ساخته شدن فرم )ماهیت فرم بوسیله new کردن به صورت یک شی واقعی در حافظه رم بوجود میآید


درسته اما در اين دو روش همشون new ميشن اما ساخت كلاس براي چيه ؟

Mahmoud Zaad
پنج شنبه 08 بهمن 1394, 10:22 صبح
سلام
ببینید ویژوال استودیو یک فرم رو به سه فایل تقسیم میکنه یعنی کدها در یک فایل، دیزاینر در یک فایل و اطلاعات ریسورس در یک فایل دیگه. مزیتش هم سادگی در مدیریت کدها و تمیز شدن محیط و سادگی در استفاده های بعدی هست. بعد اگه در فرم های استاندارد ویژوال استودیو نگاه کنید یه کلمه partial استفاده شده یعنی اومده فرم رو بخش بندی که طبق چیزی که گفتم. اما در مثال اول، شما باید دیزاینر و کدها رو همه در یک فرم بنویسید که خوانشش (بویژه در فرمهایی که چندهزار خط کد داره و احتمالاً چند هزار خط هم برای سازنده اش نیاز هست) واقعاً سخته. هر چند بعضی ها به این روش کار میکنند. ولی در عمل هر دو فرم یک کار رو انجام میدن. در مثال اول شما یه کلاس می سازید و از Form ارث بری می کنید. همین کار رو برای سایر کنترلها هم میشه انجام داد. مثلاً یه کلاس بسازید و از باتن ارث بری کنید و یه باتن سفارشی با کارکردهای خاص برای خودتون بسازید.