PDA

View Full Version : سوال: نحوه کار با فرم های MDI



Mojtaba.Kh
سه شنبه 27 تیر 1391, 10:57 صبح
سلام.
دوستان من برنامه ای دارم که متشکل از یک فرم پدر و چندین فرم فرزند است.
هر کنترلی که روی فرم پدر قرار میدم موقع اجرای برنامه روی همه فرم های فرزند قرار میگیره.من اگر بخوام کنترلی روی فرم پدر زیر فرم های فرزند قرار بگیره باید چکار کنم؟
بعنوان مثال کامپوننت تقویم درست کردم که میخوام روی فرم اصلی قرار داشته باشه.اونو روی فرم اصلی قرار میدم اما موقع اجرای برنامه وقتی فرم های دیگه رو باز میکنم این کامپوننت میافته روی اون فرم.
اگه کسی راهنمایی کنه گره از کارم باز کرده.ممنون:قلب::قلب::قلب:

Mojtaba.Kh
چهارشنبه 28 تیر 1391, 11:35 صبح
این پست رو دادم تا کامنت بیاد بالا.کمکی بفرمائید

daneshjo90
چهارشنبه 28 تیر 1391, 12:31 عصر
سلام
والاه منم با همين مشكل در حال سره كله زدن هستم تا حالا هم براش جواب قابل قبولي پيدا نكردم
ممنون ميشم كسي كمكي كنه
هم به من هم به اقا مجتبي

Mahmoud.Afrad
چهارشنبه 28 تیر 1391, 12:45 عصر
یک راه حل که به نظر من میرسه اینه که این کنترل ها رو روی یک فرم دیگه بزارید و فرم رو show کنید و به یک قسمت dock کنید.

Mojtaba.Kh
پنج شنبه 29 تیر 1391, 08:25 صبح
هنوز که به روش خوبی نرسیدم.یکی همین سوال رو توی CodeProject پرسیده بود بهش گفته بودن موقع نمایش فرم فرزند کنترل رو مخفی و هنگام بستنش کنترل رو نشون بدین.فرم فرزند من نصف فرم پدره.باید زیرش کنترل های پدر دیده بشه.
این کد هم کار نمیکنه.درواقع دیگه اصلا کنترل رو هم روی فرم پدر نشون نمیده:
Mdi form button click code
Collapse | Copy Code
Dim fm As employeeimage
fm = New employeeimage
fm.MdiParent = Me
fm .Show()
Me.PictureBox1.SendToBack()
child form unload code
Collapse | Copy Code
Dim s
s = MessageBox.Show("Do you want to close that", "SMS", MessageBoxButtons.YesNo)
If (s = vbYes) Then
Dim ss As Mainform
ss.PictureBox1.BringToFront()
End If

آقا اگه راه بهتری سراغ دارید عنوان بفرمائید

speralda
پنج شنبه 29 تیر 1391, 11:38 صبح
سلام

دوست گرامی شما خودتون دارید می گید پدر- فرزند(ارث بری) خوب این خیلی بدیهی هست که باید این اتفاقی که ذکر کردید رخ بده.

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

موفق باشید.

Mojtaba.Kh
دوشنبه 02 مرداد 1391, 10:05 صبح
سلام

دوست گرامی شما خودتون دارید می گید پدر- فرزند(ارث بری) خوب این خیلی بدیهی هست که باید این اتفاقی که ذکر کردید رخ بده.

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

موفق باشید.

دوست من شما متوجه سوال بنده نشدید.
بحث ارث بری نیست.بحث کنترل های روی فرم پدر هست که اولویت نمایش داره.

aslan
دوشنبه 02 مرداد 1391, 10:59 صبح
سلام
لطفا یک تصویر از مشکلتون اینجا بذارید