PDA

View Full Version : دلیل پنهان نشدن فرم



HAIdle
یک شنبه 07 مرداد 1386, 00:12 صبح
سلام به همه دوستان
من یه فرم دارم که روی آن یک دکمه است. وقتی آن دکمه فشار داده می شه برنامه با کد زیر فرم جاری را مخفی و یک فرم جدید باز می کنه. با این وجود هنگام اجرا گاهی فرم اصلی مخفی نمیشه گر چه اکثر وقتها پنهان میشه. اشکال چیست و چطور باید رفعش کرد؟


mainForm firstPage = new mainForm();
this.Hide();
firstPage.Show();

a_safyari
یک شنبه 07 مرداد 1386, 15:58 عصر
به نظر نمی رسه کدی که نوشتی اشکال داشته باشه .
لطفا در مورد اشکالش بیشتر توضیح بده .

mahani
یک شنبه 07 مرداد 1386, 22:02 عصر
به نظر منم مشکلی نداره حالا خط آخر و یکی به آخرو عوض کن شاید درست شه

Engineer_Yasin
دوشنبه 08 مرداد 1386, 02:59 صبح
سلام
از showdialog به جای Show استفاده کن:چشمک::چشمک:

alireza643
دوشنبه 08 مرداد 1386, 16:48 عصر
اگر اشتباه نکنم showdialog برای اینه که فرم جدید که باز میشه دیگه نشه از فرم زیری استفاده کرد و کاری به show یا hide شدن نداره فقط فرم زیری رو Disable میکنه.
شما چرا میخواهید فرم رو Hide کنید؟ فکر نمیکنید اگر فرم Close بشه هم این مشکل رو ندارید هم از منابع سیستم بهتر استفاده میشه؟
اگر هم حتما میخواهید از Hide استفاده کنید بهتره رویداد Show فرم جدید رو تو رویداد Visible change فرم اول قرار بدی اگر Visible میخواست False بشه فرم جدید رو اونجا Show کن.

HAIdle
دوشنبه 08 مرداد 1386, 20:33 عصر
شما چرا میخواهید فرم رو Hide کنید؟ فکر نمیکنید اگر فرم Close بشه هم این مشکل رو ندارید هم از منابع سیستم بهتر استفاده میشه؟

چون فرم جدید داره توی فرم جاری باز نیشه فرزند اون محسوب میشه و در صورت بستن فرم جاری فرم جدید هم بسته میشه.



اگر هم حتما میخواهید از Hide استفاده کنید بهتره رویداد Show فرم جدید رو تو رویداد Visible change فرم اول قرار بدی اگر Visible میخواست False بشه فرم جدید رو اونجا Show کن.
اگه این کار را بکنم یه مشکل هست: اگه فرم مخفی نشد فرم جدید هم باز نمیشهو کاربر باید یه بار دیگه دکمه را فشار بده. البته

شاید بهتر باشه چون دیگه مطمئنیم دو تا فرم باز نداریم ولی من دنبال راه اصولیم و علت این مشکل

a_safyari
سه شنبه 09 مرداد 1386, 09:26 صبح
راه اصولی و درستش همانی است که خودت نوشتی .

این کد کاملا درسته و جالب اینجاست که می گی بعضی وقتها درست کار می کنه بعضی وقتها نه !!!

برای اطمینان بیشتر جای خط اول و دوم رو عوض کن اگر درست نشد .......
شاید مشکل از سیستم عاملت باشه این کد رو یک کامپیوتر دیگه هم اجرا کن .

alireza643
سه شنبه 09 مرداد 1386, 10:23 صبح
من دنبال راه اصولیم و علت این مشکل

من همون کد بالا رو نوشتم و حد اقل 100 بار امتحان کردم حتی یک بار هم مشکلی که شما گفتید به وجود نیومد دیگه اصولیتر از این من که نمیدونم چی میشه:گریه:
شما برنامه رو روی کامپیوتر دیگه هم امتحان کردید شاید رو کامپیوتر شما نکته ای وجود داره که این اتفاق میوفته؟:متفکر:

HAIdle
سه شنبه 09 مرداد 1386, 16:39 عصر
با تشکر از همه دوستان
من فکر می کردم یه جایی توی برنامه سوتی دادم ولی اینطور که پیداست اشکال خارج از برنامه من است