نوشته شده بوسیله تبسم
29. دی 1388 00:02
سلام علیکم
پست قبل یه اشاره ای به فرم هایMultiple-Document Interface (MDI)و Single-Document Interface (SDI)داشتیم.حالا اینجا بیشتر می خوام توضیح بدم اینا چی هستن.
با یه مثال می گم که درکش سریعتر و راحتتر باشه. من خودم اینجوری راحت متوجه شدم و همیشه یادم میمونه. همه تون حتما یه بار هم شده محیط برنامه فتوشاپ رو دیدین، دیدین که توی فرم اصلی (همون صفحه ی اصلی برنامه) چندتا پنجره ی کوچکتر هم هست. این سیستم که چند تا فرم توی فرم اصلی هستن و می تونین صداشون بزنین و یا وقتی پنجره نیو می کنین می تونین همون جا چند تا پنجره با هم داشته باشین توی پنجره ی اصلی، این می شه MDI و مقابلش مثلا دیدن وقتی می خوایی پنجره های برنامه ی ورد رو باز کنین هر بار که نیو می کنین داکیومنت جدید توی یه پنجره ی جدید باز می شه؟ این می شه SDI.
حالا توی ویژوال استودیو اگر همین طور معمولی فرم ها رو بسازیم و مثلا مثل همین مثال CRM و یا دفترچه تلفن فرم های بعدی رو نیو کنیم و صدا بزنیم می شه SDI فرم.
اما حالا یه نمونه ی خیلی ساده از MDI فرم ها رو با هم می سازیم توی وِیژوال استودیو 2008. مثالهای دیگش رو می تونین اینجاMSDN هم ببینین.
توی این جور فرم ها فرم اصلی ما که به لحاظ الویت بالاتر قرار می گیره می شه فرم Parent یا والد ما و بقیه فرم هایی که قراره توش باز شن می شن فرم های فرزند Child.
حالا مرحله به مرحله :
1.یه پروژه ی Windows Form Application می سازین. اسمش رو هر چی دوست دارین بذارین مثلا: MDIForm
2. برین به قسمت پراپرتیز فرمی که دارین و IsMdiContainer رو True کنین.اگه دقت کنین بعد این کار رنگ فرمتون پررنگ می شه.
3.بعد می تونین از توی پنجره ی ToolBox کنترل menustrip رو بذارین روی فرم تون و مثلا یه File و New و … مثل شکل داشته باشین روش(می دونین که روی فرم، روی همین منو کلیک کنین می تونین بنویسین منوهایی رو که میخوایین داشته باشین).
4. بعد از این کار حالا می خواییم فرم فرزندمون مثلا فرم زیر منوی نیو (New) رو وقتی صدا می زنیم توی همین صفحه باز شه.اولا باید یه فرم اضافه کنین به پروژه:
4-1 : روی نام پروژه در Solution Explorer راست کلیک می کنین و گزینه ی Add و بعد New Item رو انتخاب می کنین:
4-2: بعد توی پنجره ای که باز می شه یه فرم انتخاب می کنین و اضافه می کنین. می تونین اسم فرم رو هم عوض کنین.
5. حالا باید کد مربوط به باز شدن فرم دوم رو بنویسم. از اونجایی که می خواییم با کلیک روی زیر منوی نیو فرم دوم باز بشه روی فرم اول روی زیر منوی New دو بار کلیک کنین تا وارد قسمت کدنویسیش بشیم و کد زیر رو در قسمت مورد نظر می نویسیم:
و در نهایت F5 و اجرای برنامه.(من همین کد رو برای منوی Window هم نوشتم تا اجراش رو بهتر ببینین که چه جوری دو تا فرم همزمان توی یه فرم باز می شن و می شه باهاشون کار کرد، اندازه شون رو تغییر داد و …با بستن فرم اصلی و در واقع همون والد فرم های فرزند هم بسته می شن.)
