PDA

View Full Version : سوال: مشکل در کد نویسی Form Closing



rezarko
سه شنبه 05 دی 1391, 09:18 صبح
سلام. من دستور If توی FormClosing فرمم نوشتم که اگه شرطش اجرا شد Close رو انجام بده. ولی هر دفعه که Close رو انجام میده از دوباره وارد FormClosing میشه و دستور رو اجرا میکنه. خلاصه نمیشه از برنامه خارج شد.
به نظرتون باید چیکار کنم که یه بار بیشتر Form Closin فرمم اجرا نشه؟
باتشکر

مهرداد صفا
سه شنبه 05 دی 1391, 10:02 صبح
سلام برای بسته شدن یا نشدن فرم میتوانید از آرگومنت رویداد استفاده کنید به این صورت که اگر E.Cancel را برابر true قرار دهید فرم بسته نمیشود. برای مثال:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if(MessageBox.Show("are you sure to quit?","confirm",MessageBoxButtons.YesNo)==DialogResult.Yes)
{
//allow form to close.
e.Cancel=false;
}
else
{
//cancel closing the form.
e.Cancel=true;
}}

hakim22
سه شنبه 05 دی 1391, 13:37 عصر
احتمالا شما از یک متغیر محلی برای کنترل شرط استفاده می کنید و هر بار که فرم دوباره ساخته میشه محتوای این متغیرها هم به حالت پیشفرض بازگشت میکنه
شما باید یک متغیر عمومی از نوع static تعریف بکنید که فارغ از این که در کدام نمونه ساخته شده از فرم قرار دارید محتوای اون رو تغییر نده !

davidrobert
چهارشنبه 23 اسفند 1391, 19:01 عصر
سلام و خسته نباشید من از این دستور استفاده کردم و فرم من بسته شد ولی برنامه من در حالت اجرا بود و دات نت بسته شوده بود نمیدونم دلیل اینکه چرا از برنامه خارج میشه ولی هنوز فرم باز هستش در برنامه دات نت ممنون میشم من رو کمک کنید.اینم دستور خروج از برنامه که برنامه بسته میشه ولی هنوز باز هستش در دات نت و stop میزنم برنامه بسته میشه.

if (FMessegeBox.FarsiMessegeBox.Show("آیا مایل به خروج از برنامه می باشید", "خروج", FMessegeBox.FMessegeBoxButtons.YesNo, FMessegeBox.FMessegeBoxIcons.Question) == DialogResult.Yes)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}