PDA

View Full Version : اجرای "فقط" یک فرم در فرم‌های والد و فرزند



mehr83
یک شنبه 25 آذر 1386, 18:32 عصر
من میخوام تو برنامم به جز فرم پدر در آن واحد فقط یک فرم باز باشه و نمی خوام کاربر رو محدود کنم و پیغام نشون بدم که فلان فرمت بازه یا فرم پدر رو Disable کنم.
میخوام وقتی فرمی بازه اگه کاربر فرم دیگه‌ای باز کرد فرم قبلی (حالا یا با پیام یا بدون پیام ) خود به خود بسته بشه.
از اساتید کسی هست که بتونه در این مورد منو کمک کنه؟

----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

morteza_261
دوشنبه 26 آذر 1386, 10:29 صبح
سلام
این کد رو نگاه کن:

'فرا خوانی فرم شهریه
Me.Hide()
Dim Frm AsNew FrmShahrie
Frm.ShowDialog()

اینجوری فرم قبلی مخفی میشه
فقط باید موقع بستن اون یکی فرم این کد رو هم بنویسی:

PrivateSub FrmShahrie_FormClosed(ByVal sender AsObject, ByVal e As System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed
FrmMain.Show()
EndSub

FrmMain همان فرمی است که قبلا مخفی کردیم

mehr83
دوشنبه 26 آذر 1386, 21:25 عصر
سلام
این کد رو نگاه کن:

'فرا خوانی فرم شهریه
Me.Hide()
Dim Frm AsNew FrmShahrie
Frm.ShowDialog()

اینجوری فرم قبلی مخفی میشه
فقط باید موقع بستن اون یکی فرم این کد رو هم بنویسی:

PrivateSub FrmShahrie_FormClosed(ByVal sender AsObject, ByVal e As System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed
FrmMain.Show()
EndSub

FrmMain همان فرمی است که قبلا مخفی کردیم

من از طریق فرم پدر فرم فرزند رو باز می کنم و باید حتما فرمی که باز میکنم فرزند باشه و داخل فرم پدر نمایش داده بشه برای اینکار از این دستور استفاده می‌کنم


Dim NewFrm As New CardAddFrm()
NewFrm.MdiParent = Me
NewFrm.Show()

وقتی به جای show می‌نویسم showdialog این خطا رو میده

Form that is not a top-level form cannot be displayed as a modal dialog box. Remove the form from any parent form before calling showDialog

----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

saeed_rezaei
دوشنبه 26 آذر 1386, 22:33 عصر
من از طریق فرم پدر فرم فرزند رو باز می کنم و باید حتما فرمی که باز میکنم فرزند باشه و داخل فرم پدر نمایش داده بشه برای اینکار از این دستور استفاده می‌کنم


Dim NewFrm As New CardAddFrm()
NewFrm.MdiParent = Me
NewFrm.Show()وقتی به جای show می‌نویسم showdialog این خطا رو میده

Form that is not a top-level form cannot be displayed as a modal dialog box. Remove the form from any parent form before calling showDialog

سلام
فرم فرزند رو نمی شه showdialog زد. از آنجا که تمام فراخوانی های فرم های فرزند در فرم والد صورت می گیرد، لذا کد زیر رو قبل از هر بار فراخوانی اجرا کنید. یعنی قبل از اجرای قطعه کدهای بالایی


Dim i As Integer
For i = 0 To Me.MdiChildren.Length - 1
Me.MdiChildren(i).Close()
Next