PDA

View Full Version : mdi فرم



Dr.Saeed
شنبه 28 دی 1387, 11:52 صبح
با سلام
دوستان عزیز میخوام فرم1 را والد فرم 2 کنم ولی چون روی فرم والد(فرم 1) چندتایی گرید ویو و گروپ باکس وجود داره فرم 2 بین فرم 1 و گرید و گروپ ها واقع میشه!!! بطوری که مشاهده نمیشه !!
ممنون میشم بگید مشکلم کجاست

ennovation
شنبه 28 دی 1387, 13:13 عصر
سلام
دوست عزیز در فرم 1 همه کنترلهایی که رو گفتید ( گرید . گروب باکس .....) انتخاب کنید بعدش یک رایت کلیک کنید
و از منوی نشان داده شده گزینه سوم را انتخاب کنید که باعث میشود این کنترلها در پشت کنترلها یا فرمهای دیگر قرار بگیرند.
(بعلت عدم دسترسی به ویژوال نمیدونم که محتوای گزینه چه هست ولی یادم هست که گزینه اول کد رو نشون میده گزینه دوم کنترلها رو به جلو هدایت میکنه و سومی هم کنترلها را به عقب میکشه ) .

موفق باشی

Mahdi.Kiani
شنبه 28 دی 1387, 15:50 عصر
با سلام
دوستان عزیز میخوام فرم1 را والد فرم 2 کنم ولی چون روی فرم والد(فرم 1) چندتایی گرید ویو و گروپ باکس وجود داره فرم 2 بین فرم 1 و گرید و گروپ ها واقع میشه!!! بطوری که مشاهده نمیشه !!
ممنون میشم بگید مشکلم کجاست

قبلا این مورد بیان شده و راه حل هایی هم داده شده ولی چیزی که مهمه اینه که معولا در برنامه های MDI در فرم مادر، کنترلی به طور مستقیم اضافه نمی کنند. (معمولا فرم mdi یا خالبی می باشد و یا دارای یک عکس در background خود)
این کنترل هایی که گفتید می توانند بر روی یک فرم Child یا بر روی یک owned form (چیزی شبیه به پنجره tool box در برنامه photoshop یا ...) باشند.

Dr.Saeed
جمعه 04 بهمن 1387, 10:43 صبح
دوست عزیز در فرم 1 همه کنترلهایی که رو گفتید ( گرید . گروب باکس .....) انتخاب کنید بعدش یک رایت کلیک کنید
و از منوی نشان داده شده گزینه سوم را انتخاب کنید که باعث میشود این کنترلها در پشت کنترلها یا فرمهای دیگر قرار بگیرند.
(بعلت عدم دسترسی به ویژوال نمیدونم که محتوای گزینه چه هست ولی یادم هست که گزینه اول کد رو نشون میده گزینه دوم کنترلها رو به جلو هدایت میکنه و سومی هم کنترلها را به عقب میکشه ) .

با سلام و تشکر
این کار در موقعی که برنامه ران بشه تاثیری نداره و راه حل مناسبی نیست.

قبلا این مورد بیان شده و راه حل هایی هم داده شده ولی چیزی که مهمه اینه که معولا در برنامه های MDI در فرم مادر، کنترلی به طور مستقیم اضافه نمی کنند. (معمولا فرم mdi یا خالبی می باشد و یا دارای یک عکس در background خود)
این کنترل هایی که گفتید می توانند بر روی یک فرم Child یا بر روی یک owned form (چیزی شبیه به پنجره tool box در برنامه photoshop یا ...) باشند.
الان راه حل چیست فرم اصلی من شامل همه مواردی که مرسوم نیست ولی امکان اصلاح و تغییر آن نیست با این وجود نمیشه یه جوری این مشکل را حل کرد
صمیمانه تشکر

Dr.Saeed
شنبه 05 بهمن 1387, 08:34 صبح
دوست عزیز در فرم 1 همه کنترلهایی که رو گفتید ( گرید . گروب باکس .....) انتخاب کنید بعدش یک رایت کلیک کنید
و از منوی نشان داده شده گزینه سوم را انتخاب کنید که باعث میشود این کنترلها در پشت کنترلها یا فرمهای دیگر قرار بگیرند.
(بعلت عدم دسترسی به ویژوال نمیدونم که محتوای گزینه چه هست ولی یادم هست که گزینه اول کد رو نشون میده گزینه دوم کنترلها رو به جلو هدایت میکنه و سومی هم کنترلها را به عقب میکشه ) .

این عقب و جلو کشیدن اشیا در موقعی است که برنامه ران شده یا نشده
من این موارد را امتحان کردم ولی پس از ران شدن تغییری مشاهده نکردم و همچنان فرم 2 بین فرم 1 و اشیا قرار می گرفت
ممنون میشم راهنماییم کنید.....

Dr.Saeed
دوشنبه 07 بهمن 1387, 07:44 صبح
دوستان کسی نمیتونه راهنمایی کنه؟

Dr.Saeed
سه شنبه 08 بهمن 1387, 11:41 صبح
این موضوع مشکل بزرگی واسم شده خواهش میکنم راهنمایی کنید...

f_pakzad
دوشنبه 29 تیر 1388, 12:44 عصر
قبلا این مورد بیان شده و راه حل هایی هم داده شده ولی چیزی که مهمه اینه که معولا در برنامه های MDI در فرم مادر، کنترلی به طور مستقیم اضافه نمی کنند. (معمولا فرم mdi یا خالبی می باشد و یا دارای یک عکس در background خود)
این کنترل هایی که گفتید می توانند بر روی یک فرم Child یا بر روی یک owned form (چیزی شبیه به پنجره tool box در برنامه photoshop یا ...) باشند.

خب حالا فرض کنیم فقط picturebox داشته باشیم.باز هم این فرم جدید پشت picturebox قرار می گیره. و اگر بخواهیم send to back کنیم به طور کل محو میشه.همه تاپیک های مربوطه رو مطالعه کردم اما به نتیجه نرسیدم.لطفا راه حلشو بفرمایید.یه نمونه برنامه هم گذاشتم.

f_pakzad
دوشنبه 29 تیر 1388, 16:54 عصر
ویتان لطفا یه نگاهی بندازید

saeedr22
دوشنبه 29 تیر 1388, 17:15 عصر
از topmost و یا showdialog استفاده کن .

Reza_Yarahmadi
دوشنبه 29 تیر 1388, 23:18 عصر
از topmost و یا showdialog استفاده کن .
توی فرمهای mdi نمیشه متد ShowDialog رو استفاده کرد(اگر فرزند، MdiParent داشته باشه!!). TopMost هم توی این مورد جوابگو نیست.
روشی هم که دوستمون ennovation گفتند فقط برای جابجا کردن کنترلها جواب میده
یه راه اینه که تمام کنترلهای فرم اصلی رو توی یه فرم Child بذاری و توی لود برنامه اون فرم رو نمایش بدی ، (میتونی از بسته شده این فرم هم جلوگیری کنی).
یه راه دیگه اینه که زمان نمایش یه فرم خاصیت Visible تمام کنترلها رو False کنی و توی برگشت این خاصیت رو True کنی.
البته اگه نظر من باشه! روش اول رو توصیه میکنم.

saeedr22
سه شنبه 30 تیر 1388, 17:22 عصر
توی فرمهای mdi نمیشه متد ShowDialog رو استفاده کرد(اگر فرزند، MdiParent داشته باشه!!). TopMost هم توی این مورد جوابگو نیست.
روشی هم که دوستمون ennovation گفتند فقط برای جابجا کردن کنترلها جواب میده
یه راه اینه که تمام کنترلهای فرم اصلی رو توی یه فرم Child بذاری و توی لود برنامه اون فرم رو نمایش بدی ، (میتونی از بسته شده این فرم هم جلوگیری کنی).
یه راه دیگه اینه که زمان نمایش یه فرم خاصیت Visible تمام کنترلها رو False کنی و توی برگشت این خاصیت رو True کنی.
البته اگه نظر من باشه! روش اول رو توصیه میکنم.

اگه فرار باشه از showdialog استفاده کنه دیگه لزومی نداره که از mdi استفاده کنه.

f_pakzad
سه شنبه 30 تیر 1388, 20:29 عصر
یه راه اینه که تمام کنترلهای فرم اصلی رو توی یه فرم Child بذاری و توی لود برنامه اون فرم رو نمایش بدی ، (میتونی از بسته شده این فرم هم جلوگیری کنی).
یه راه دیگه اینه که زمان نمایش یه فرم خاصیت Visible تمام کنترلها رو False کنی و توی برگشت این خاصیت رو True کنی.
البته اگه نظر من باشه! روش اول رو توصیه میکنم.
روش اول:اتفاقا من از این روش استفاده کردم اما چون از چند تا کنترل dockable تو فرمم استفاده کردم موقع تغیر سایز فرم اصلی شکل فرم به هم میریزه.(البته این رو به صورت دستی کنترل کردم اما شکل رضایت بخشی نداره)به خاطر همین خواستم کنترل مورد نظرم رو که یه دیتا گیرید است روی پنل د رفرم اصلی بیارم.با false کردن toplevel و add کردن دیتاگیرید و فرم فرزند به این پنل مشکل حل میشه.تنها چیزی میمونه اینه که اگر بخواهیم از طریق یکی از این فرم های فرزند یک فرم دیگری باز کنیم که با زهم فرزند فزم اصلی باشه قابل نمایش نیست.
در مورد روش دوم هم که :اگر کاربر بخواد فرم رو تغییر مکان بده چی؟اون وقت تعجب نمیکنه که این کنترل ها کجا رفتند؟؟!

f_pakzad
سه شنبه 30 تیر 1388, 20:44 عصر
اگه فرار باشه از showdialog استفاده کنه دیگه لزومی نداره که از mdi استفاده کنه.
showdialog اصلا کربر پسند نیست.هرچند که کار ما رو راحت میکنه اما ازادی کاربرو کم میکنی

saeedr22
سه شنبه 30 تیر 1388, 22:13 عصر
showdialog اصلا کربر پسند نیست.هرچند که کار ما رو راحت میکنه اما ازادی کاربرو کم میکنی

این موضوعی خیلی روش اینجا بحث شده مطمئن باشین که نمی توینین به نتیجه برسین .فقط اگه لطفاً نتیجه گرفتین اینو به من هم بگین چون واقعاً لازمه.
من این مشکلو فقط با topmost و یا showdialog تونستم حل کنم .ولی همانطور که شما گفتین کاربر پسند نیست.ولی محدودیت تو topmost خیلی کمتره.
با تشکر

keivan mousavi
چهارشنبه 31 تیر 1388, 02:50 صبح
ميتوني از خاصيت MDI tabcontorol استفاده كني اگر ميخواي از برنامه هاي چند فرمي استفاده كني كه درونشون هر آيتمي كه ميخواي بزاري
من الان فايل DLL شو ندارم ولي اگه خواستي بگو تا واست بزارم

f_pakzad
جمعه 02 مرداد 1388, 12:59 عصر
ميتوني از خاصيت MDI tabcontorol استفاده كني اگر ميخواي از برنامه هاي چند فرمي استفاده كني كه درونشون هر آيتمي كه ميخواي بزاري
من الان فايل DLL شو ندارم ولي اگه خواستي بگو تا واست بزارم

لطف کنید بذارید