روش دوم ارتباط کلاس و فرم :
استفاده از فرم به عنوان آرگومان
اگر صفحات آموزش های قبلی را خوانده باشید به یاد دارید که از روش استفاده از پراپرتی برای ایجاد ارتباط کلاس با فرم توضیحاتی داده شد در این جلسه بعنوان دومین روش برای ارتباط بین کلاس و فرم روش پاس دادن فرم بعنوان یک آرگومان به متد کلاس توضیحاتی ارائه می شود .این روش به شما امکان میدهد با کد نویسی کمتری به کنترلهای فرم دسترسی داشته باشید .
مثال:
internal class MyClass
{
public void ProcessForm(Form form)
{
CheckBox checkBox = (CheckBox)form.Controls["checkBox1"];
if (checkBox.Checked)
{
// کد مربوط به چکباکس تیک خورده
}
else
{
// کد مربوط به چکباکس تیک نخورده
}
}
}
نحوه استفاده در فضای فرم مثلا در رویداد یک باتن :
private void button1_Click(object sender, EventArgs e)
{
MyClass testClass = new MyClass();
testClass.ProcessForm(this); // this اشاره به فرم فعلی دارد
}
در این مثال، متد ProcessForm در کلاس MyClass به عنوان یک متد تعریف شده است که یک فرم را به عنوان آرگومان دریافت میکند. سپس میتوانید به کنترلهای فرم با استفاده از نام آنها در متد دسترسی پیدا کنید.
مقایسه دو روش
روش اول : استفاده از Property
مزیت: انعطافپذیر است و به شما امکان میدهد تا فقط اطلاعات مورد نیاز را بین کلاس و فرم منتقل کنید.
معایب: اگر بخواهید چندین کنترل را مدیریت میکنید نیاز به تعریف چندین Property دارید .
روش دوم : استفاده از فرم به عنوان آرگومان
مزیت: به شما امکان میدهد به تمام کنترلهای فرم دسترسی داشته باشید و کد کمتری نیاز دارید.
معایب: ممکن است به دلیل دسترسی مستقیم به کنترلهای فرم، کدهای شما کمتر کپسوله شده باشند و در صورت تغییرات در فرم، نیاز به تغییرات بیشتر در کلاس داشته باشید.
در هر صورت هر دو روش دارای مزایا و معایبی هستند و انتخاب بین آنها بستگی به نیاز و طراحی برنامه شما دارد.