PDA

View Full Version : close کردن فرم در فرم پدر



gharibeh223
سه شنبه 02 فروردین 1390, 20:40 عصر
سلام . سال نو مبارک .

من یه فرم دارم با نام frm1 و یک فرم دارم به نام frm2 .

فرم frm2 به صورت Inherit از فرم frm1 ساخته شده .

من چطور می تونم در رویداد frm1.Load در صورت برقرار بودن شرطی از نمایش frm2 جلوگیری کنم ؟

reza_edu
سه شنبه 02 فروردین 1390, 22:00 عصر
سلام دوست گرامي شما تو سي شارپ ميخواي پياده سازي كني يا تو ويبي؟
بگزريم اين كار خلي آسونه شما ميخواي (البته اگه درست گم) اگه تو فرم لود شرط برقرار بود كاربر بتونه فرم دوم رو نگه كنه اين با يه متغير بولين حل ميشه! يه شرت چك كردن داره
فرم frm2 به صورت Inherit از فرم frm1 ساخته شده . به نظر من فرقي نميكنه ميخواي برنامت رو (نمونه كاري كه ميخواي انجام بدي) بزار تا بشه بيشتر راهنمائي كرد.

gharibeh223
چهارشنبه 03 فروردین 1390, 11:35 صبح
فرقی نداره کجا پیاده سازی بشه .

مشکل من اینحاست که در frm1.load دستور close یا dispose می دم اما چون بعد رویداد frm2.show اتفاق می افته فرم من نشون داده می شه .

shadi khanum
چهارشنبه 03 فروردین 1390, 12:08 عصر
خوب شرطتون رو قبل از show فرم چک کنید که اگه برقرار بود کلا فرم رو show نکنه چون وقتی تو load اینکار انجام بشه اول نشون میده و بعد میبنده

gharibeh223
چهارشنبه 03 فروردین 1390, 15:43 عصر
نه عزیزم مشکل من این جاست که این کد حتما باید توی Load فرم پدر یعنی frm1 انجام بشه .

shadi khanum
چهارشنبه 03 فروردین 1390, 16:32 عصر
پس این مشکل flick فرم رو نمیشه کاریش کرد اگه حتما باید لود انجام بشه و بعد بسته شه!

b.mahsa
چهارشنبه 03 فروردین 1390, 21:59 عصر
تو Constructor فرم فرزند شرط رو تست کنید . تا قبل از Load جلوشو بگیرین

shadi khanum
پنج شنبه 04 فروردین 1390, 01:08 صبح
متاسفانه دوستمون میگه شرط رو فقط تو لود فرم میخواد چک کنه! اگه نه constructor یا قبل Show فرقی ندارن!

gharibeh223
پنج شنبه 04 فروردین 1390, 01:49 صبح
دقیقا همین طوره . حالا راهه حل ؟

shadi khanum
پنج شنبه 04 فروردین 1390, 11:03 صبح
به نظرم راهی نداره! جز اینکه سعی کنید یه جوری شرط رو قبل از لود چک کنید.. شرط چیه که میگی فقط توی لود میشه؟

gharibeh223
پنج شنبه 04 فروردین 1390, 14:44 عصر
شاید بالای 100 فرم وجود داره که از یک فرم پدر ارث بردن و همچنین برای رعابت فوانبن بک پارپگی .

reza_edu
جمعه 05 فروردین 1390, 18:54 عصر
برادر محترم اين كه شما بخوايد دوستان بدونه ديدن كد شما ، شما رو راهنمائي كنن مشكل هست خودت رو بزار جاي دوستا بين اگه كسي اين طور راهنمائي كنه ميتوني راهنمائي كني! حداقل يه مثال نخود اون بر نامه شبيه اون قرار بده تا متوجه شرايط بشن .
بازم من ميگم اين مشكل بسيار ساده با يه ترد ديگه حل ميشه.

shadi khanum
جمعه 05 فروردین 1390, 23:50 عصر
اگه بتونن کدشون رو بذارن که کمک میکنه مخصوصا اون تیکه شرطی که میگن. ولی فک نکنم با Thread مشکل ایشون حل بشه!

gharibeh223
یک شنبه 07 فروردین 1390, 19:07 عصر
مشکل حل شد ...
اینجوری : (توی فرم پدر نوشتم)
Public Sub ShowDialog()
If شرط() Then
MyBase.ShowDialog()
Else
Dispose()
End If

shadi khanum
یک شنبه 07 فروردین 1390, 21:44 عصر
شما که گفتبن فقط توی لود فرم میخواین چک کنین شرط رو !

gharibeh223
دوشنبه 08 فروردین 1390, 11:55 صبح
بله درسته . هرچه سعی کردم نشد توی رویداد load بنویسم . و همین طور که می بینید رویداد Show و ShowDialog دوباره OverWrite کردم که در واقع قبل از load نوشتم .