فرم های MDI و SDI

نوشته شده بوسیله تبسم 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 کنین.اگه دقت کنین بعد این کار رنگ فرمتون  پررنگ می شه.

mdi1 3.بعد می تونین از توی پنجره ی ToolBox کنترل menustrip رو بذارین روی فرم تون و مثلا یه File و New و … مثل شکل داشته باشین روش(می دونین که روی فرم، روی همین منو کلیک کنین می تونین بنویسین منوهایی رو که میخوایین داشته باشین).

mdi2

4. بعد از این کار حالا می خواییم فرم فرزندمون مثلا فرم زیر منوی نیو (New) رو وقتی صدا می زنیم توی همین صفحه باز شه.اولا باید یه فرم اضافه کنین به پروژه:

4-1 : روی نام پروژه در Solution Explorer راست کلیک می کنین و گزینه ی Add و بعد New Item رو انتخاب می کنین:

mdi3  4-2: بعد توی پنجره ای که باز می شه یه فرم انتخاب می کنین و اضافه می کنین. می تونین اسم فرم رو هم عوض کنین.

mdi4

5. حالا باید کد مربوط به باز شدن فرم دوم رو بنویسم. از اونجایی که می خواییم با کلیک روی زیر منوی نیو فرم دوم باز بشه روی فرم اول روی زیر منوی New دو بار کلیک کنین تا وارد قسمت کدنویسیش بشیم و کد زیر رو در قسمت مورد نظر می نویسیم:

mdi5

و در نهایت F5 و اجرای برنامه.(من همین کد رو برای منوی Window هم نوشتم تا اجراش رو بهتر ببینین که چه جوری دو تا فرم همزمان توی یه فرم باز می شن و می شه باهاشون کار کرد، اندازه شون رو تغییر داد و …با بستن فرم اصلی و در واقع همون والد فرم های فرزند هم بسته می شن.)

mdi6

برچسب ها:

MDI Form

نظرات

1388/11/14 11:36:51 ب.ظ #


من كه از اينها سر در نميارم ، ولي خيلي خوشحالم وقتي ميبينم اينهمه پيشرفت كردي .
از خدا ميخوام تمام لحضه هاي زندگيت سرشار از خوشبختي باشه .

.

1388/11/18 01:27:17 ب.ظ #

واقعا خيلي خوب شده خسته نباشيد و موفق

وحيد

1389/09/30 05:32:32 ب.ظ #

سلام.با تشکر از زحماتتون و از سایت پر محتواتون یه سوال برای من پیش آومده  و اون اینکه اگر یه فرم رو به صورت مستقیم از داخل ام دی آی فرممون صدا نزنیم چطور باید خاصیت مربوطه رو ست کنیم. مثلا من از داخل یکی از منوهام که تو فرم اصلیه (MDI Form)یه فرم واسط رو صدا می زنم که تو اون مثلا شماره پرسنلی رو می گیرم و یه سری پردازش روش انجام می دم و در نهایت فرم (Child) مو رو با اطلاعاتی که بهش پاس می دم لود می کنم برای اینکه  خاصیت (MDI Form) برای Child فرمم ست کنم.ممنون میشم اگه کمکم کنید.

samin

1389/10/09 11:47:41 ب.ظ #

ابتداابتدا فرمي را به پروژه اضافه ميكنيم و مثلاسمش روfolder ميزاريم،بعد تومنوي موردنظردوباركليك كرده ودستورات زير را مينويسيم.folders frm = new folders
            frm.MdiParent = this  
          frm.Show


شهريار

1390/05/01 01:58:41 ب.ظ #

خیلی خوب بود.
خدا اجرت بده

مرتضی

1390/09/01 05:02:28 ب.ظ #

I agree!

www.finanz-forum.eu

1390/09/22 10:29:42 ب.ظ #

خیلی عالی توضیح دادی، کاملا گویا بود.

Parana

1390/11/05 03:57:15 ب.ظ #

سلام من هم دقیقاً همین کد را نوشتم ولی اجرا نمی شعنی فرم 2 را صدا نمی زنه

form2 frm2 = new form2();
frm2.mdiparent = this;
frm2.show();

مالکی

امکان ارسال نظر برای این موضوع وجود ندارد

استفاده از مطالب این وبلاگ با ذکر منبع مجاز است، لطفا!!

ایده هات مثل یه پَر که آرووم فرود می آد...

می تونی مفهوم و زیبایی تمام زندگی رو ، دنیا رو جمع کنی توی فقط یه نقطه که در بی نهایت غرقه... محیطِ مجتمع ِ "ویژوال استادیو دات نت" ، یه دنیاست مثل همین دنیا، لایه لایه، صفحه صفحه، دنیا دنیا...می شه توش سفر کرد و زندگی ساخت...دنیایی که قدرتت اونو ساخته، می سازه...مثل ِ یک محیط بازی، جایی برای یادگرفتن و تمرین زندگیه... مثل تمام موقعیت ها ولحظه های زندگی...

---------------------------

tabasom.world@gmail.com 

توجه:

بخش نظرات پس از 3 روز از ارسال پست بسته خواهد شد. برای ارسال سوال یا نظرات از بخش تماس سایت اقدام نمایید. در صورت نیاز از طریق ایمیل پاسخ داده خواهد شد.

پست های قبلی