PDA

View Full Version : خروج از برنامه



man_iran
یک شنبه 15 مهر 1386, 23:30 عصر
در یه برنامه چندین فرم دارم که برای رفتن از فرمی به فرم دیگه فرم را هاید میکنم و فرم بعد را شودیالوگ...
حال وقتی بخوام از برنامه خارج بشم (با کلیک بر ضربه در بالای فرم) از برنامه به درستی خارج نمی شه یعنی فرم هایی که قبلا هاید کردم باقی می موند.
برای رفع این مشکل باید چه کار بکنم ؟

hassan razavi
یک شنبه 15 مهر 1386, 23:47 عصر
چرا بجای Hide از Close استفاده نمیکنید ؟
می تونید از Application.Exit یا Application.ExitThread استفاده کنید ولی باز هم توصیه میکنم حتما بجای Hide کردن فرمها ، آنها را Clode کنید.

man_iran
دوشنبه 16 مهر 1386, 01:00 صبح
چرا بجای Hide از Close استفاده نمیکنید ؟
می تونید از Application.Exit یا Application.ExitThread استفاده کنید ولی باز هم توصیه میکنم حتما بجای Hide کردن فرمها ، آنها را Clode کنید.
خب اگر از کلوز استفاده کنم از برنامه خارج می شه و فرم بعدی نمایش داده نمی شه!

hassan razavi
دوشنبه 16 مهر 1386, 01:05 صبح
در صورتی از برنامه خارج میشه که فرم اصلی برنامه باشه. ولی شما گفتید چندین فرم دارید که قبل از نمایش ، قبلی را Hide می کنید. همه را Close کنید ولی فرم اصلی را Hide کنید.
ولی در هر حال می تونید با Application.Exit به راحتی از برنامه خارج بشید.

man_iran
دوشنبه 16 مهر 1386, 01:15 صبح
در صورتی از برنامه خارج میشه که فرم اصلی برنامه باشه. ولی شما گفتید چندین فرم دارید که قبل از نمایش ، قبلی را Hide می کنید. همه را Close کنید ولی فرم اصلی را Hide کنید.
ولی در هر حال می تونید با Application.Exit به راحتی از برنامه خارج بشید.
شما فرض کنید سه فرم داشته باشیم. به قول شما فرم اصلی را هاید می کنیم سپس فرم دوم را کلوز می کنیم حالا که می خواهیم ار فرم سوم خارج بشیم فرم اول (اصلی باقی می مونه)! البته این را در نظر بگیرید که می خواهیم با استفاده در علامت ضربه در بالای فرم خارج بشم نه از فرمان اپلیکیشین دات ایگزیت...

piroozman
دوشنبه 16 مهر 1386, 06:57 صبح
شما فرض کنید سه فرم داشته باشیم. به قول شما فرم اصلی را هاید می کنیم سپس فرم دوم را کلوز می کنیم حالا که می خواهیم ار فرم سوم خارج بشیم فرم اول (اصلی باقی می مونه)! البته این را در نظر بگیرید که می خواهیم با استفاده در علامت ضربه در بالای فرم خارج بشم نه از فرمان اپلیکیشین دات ایگزیت...
من دقیقا متوجه کاری که شدید نشدم. اما بهتره که شما از فرمهای MDI( والد و فرزندی) استفاده کنید. برای این کار بایستی خاصیت هسisMdicontainer فرم اصلی خودتون را True کنید. و در داخل فرم اصلی با استفاده از یک دستور (مثلا برای یک کلید یا یک منو) فرم فرزند را که میخواهید نشان بدید به صورت زیر کد نویسی کنید.
private void ToolStripMenuItem1_Click(object sender, EventArgs e)
{

frmchild objfrmchild = new frmchild();
objfrmchild.MdiParent = this;//set parent

objfrmchild.Show();//disply child
}
خوب همانطور که می بنید یک شی از فرم فرزند در رویداد کلیک یکی از منوها ایجاد می شود. و سپس برای شی اینجاد شده مشخص میگردد که فرم والد(یا اصطلاحاً فرم پدر) کدام است و بعد از آن آنرا نمایش می دهیم.
امیدوارم که بتونه مشکل شما را حل کنه.

babak23
دوشنبه 16 مهر 1386, 07:55 صبح
خوب این خیلی راحته
تو رویداد closeفرم های برنامه(فرعی) از دستور Application.Exit() استفاده کن

از این نمونه برنامه استفاده کن

hassan razavi
دوشنبه 16 مهر 1386, 08:07 صبح
شما در رویداد Close فرم سوم ، فرم اولی را دوباره Show کنید.
برای خروج از برنامه ، همیشه از فرم اصلی استفاده کنید.

babak23
دوشنبه 16 مهر 1386, 08:15 صبح
شما در رویداد Close فرم سوم ، فرم اولی را دوباره Show کنید.

برای خروج از برنامه ، همیشه از فرم اصلی استفاده کنید.
چه دلیلی به این کار هست شاید کاربر به نوعی نتونه به فرم اصلی دسترس داشته باشه و بخواد از برنامه هم خارج بشه؟

نیازی به این کار نیست در رویداد Close فرم سوم ازدستور Application.Exit() می تونه استفاده کنه حتی اگه فرم اصلی برنامه Hideشده باشه

man_iran
دوشنبه 16 مهر 1386, 09:34 صبح
خوب این خیلی راحته
تو رویداد closeفرم های برنامه(فرعی) از دستور Application.Exit() استفاده کن

از این نمونه برنامه استفاده کن

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