PDA

View Full Version : سوال: نحوه پرسیدن سوال در هنگام خروج



salehvasaleh
پنج شنبه 31 تیر 1389, 12:57 عصر
برای اینکه موقع رویداد خارج شدن (لحظه ای که کاربر بر روی ضربدر کلیک می کنه) پنجره ای باز بشه و از اون سوال بشه که "آیا می خواهید از برنامه خارج بشوید" و دو دکمه بله و خیر هم باشه و در صورت زدن دکمه بله خارج و در صورت زدن دکمه خیر به فرم بازگرده باید چکار کرد؟

mmd2009
پنج شنبه 31 تیر 1389, 16:07 عصر
با سلام

تو رویداد FormClosing فرمت اینو بنویس




if (MessageBox.Show("ایا حتما خارج شوم؟", "تذکر", MessageBoxButtons.YesNo) == DialogResult.No)
e.Cancel = true;

salehvasaleh
پنج شنبه 31 تیر 1389, 17:57 عصر
با سلام

تو رویداد FormClosing فرمت اینو بنویس




if (MessageBox.Show("ایا حتما خارج شوم؟", "تذکر", MessageBoxButtons.YesNo) == DialogResult.No)
e.Cancel = true;

دوست عزیز از توضیحت ممنون. من همین کارو انجام دادم وقتی که از yes رو انتخاب می کنم خارج می شه ولی برنامه بطور کامل متوقف نمی شه مطابق عکس:
http://up.iranblog.com/Files1/71dec57503c44e0fa43e.jpg
طوری که باید اون رو دستی متوقف کنم. اشکال کار کجاست؟ممنون

mmd2009
پنج شنبه 31 تیر 1389, 18:15 عصر
دوست عزیز شما مطمئنی با کدی که دادم نتونستید این کارو بکنید !!!

احتمالا فرم اصلی شما فرمی نیست که این کد رو داخلش گذاشتید.

salehvasaleh
پنج شنبه 31 تیر 1389, 18:18 عصر
دوست عزیز شما مطمئنی با کدی که دادم نتونستید این کارو بکنید !!!

احتمالا فرم اصلی شما فرمی نیست که این کد رو داخلش گذاشتید.
بله مطمئنم من همین کد رو در رویداد form closing فرم اولم قرار دادم. روشم که درسته بوده؟

vandermond
پنج شنبه 31 تیر 1389, 18:19 عصر
دوست عزيز
مطمئني تو قسمت FormClosing نوشتي كد رو؟
اگه ميشه دوباره نگاه كن ببين همونجاست يا نه.
در ضمن يه چيزي كه از عكس فهميدم اينه كه ممكنه فرمي كه شما اين عمليات رو روش انجام ميديد، فرم اصلي نباشه و در اين صورت بدون كد برنامه بسته نميشه
پيشنهاد من اين هستش كه اگه فرم اصلي نيست يه دونه else هم براي همون if بزاري و توي اون بنويسي
;()Application.Exit

ويرايش: پست همزمان

salehvasaleh
پنج شنبه 31 تیر 1389, 18:23 عصر
دوست عزيز
مطمئني تو قسمت FormClosing نوشتي كد رو؟
اگه ميشه دوباره نگاه كن ببين همونجاست يا نه.
در ضمن يه چيزي كه از عكس فهميدم اينه كه ممكنه فرمي كه شما اين عمليات رو روش انجام ميديد، فرم اصلي نباشه و در اين صورت بدون كد برنامه بسته نميشه
پيشنهاد من اين هستش كه اگه فرم اصلي نيست يه دونه else هم براي همون if بزاري و توي اون بنويسي
;()Application.Exit

ويرايش: پست همزمان

ممنون از توضیحتون آره الان متوجه شدم فرم 1 از کاربر یوزر و پسورد می گیره و بعد وارد این فرم می شه که من وقتی این دستوراتو توش نوشتم مشکلی که توی عکس هست پیش اومد پس من از دستور if که گفتید استفاده کنم؟؟ممنون

mmd2009
پنج شنبه 31 تیر 1389, 18:25 عصر
دوست عزیز برو تو قسمت Program.cs ببین Application.Run کدوم فرمت رو نمایش میده

salehvasaleh
پنج شنبه 31 تیر 1389, 18:28 عصر
دوست عزیز برو تو قسمت Program.cs ببین Application.Run کدوم فرمت رو نمایش میده
توی این قسمت که رفتم اینو نوشته بود:
Application.Run(new Form1());

mmd2009
پنج شنبه 31 تیر 1389, 18:28 عصر
ببین دوست حالا که فرمت شما فرم اصلی نیست با کد زیر میتوی باز هم تو همین فرم از فرم اصلی خارج بشی یا تو هر فرم دیگه ای که هستی




Application.OpenForms["form1"].Close();


form1 = نام فرم اصلی

salehvasaleh
پنج شنبه 31 تیر 1389, 18:36 عصر
ببین دوست حالا که فرمت شما فرم اصلی نیست با کد زیر میتوی باز هم تو همین فرم از فرم اصلی خارج بشی یا تو هر فرم دیگه ای که هستی




Application

.OpenForms["form1"].Close();




form1 = نام فرم اصلی




انصافا ممنونم. پس باید این دستور رو در form closing فرم 2 بدین صورت بنویسم؟

http://up.iranblog.com/Files1/e0994d0977e04072801e.jpg
طبق آنچه در عکس هست؟ممنون

mmd2009
پنج شنبه 31 تیر 1389, 18:40 عصر
خواهش میکنم.

اگر E.Cancel == False رو هم نزنید مشکلی پیش نمیاد چون پیشفرض کارش همین هست.

vandermond
پنج شنبه 31 تیر 1389, 18:41 عصر
قوانين كلي سايت:
قانون شماره 17
برای تشکر از دیگر کاربران روی تصویر http://barnamenevis.org/forum/images/buttons/post_thanks.gif زیر مطلب فرد مورد نظر کلیک کنید. ارسال متونی که صرفا برای تشکر و احوال پرسی نوشته می شوند، ممنوع است.

vandermond
پنج شنبه 31 تیر 1389, 18:43 عصر
خواهش میکنم.

اگر E.Cancel == False رو هم نزنید مشکلی پیش نمیاد چون پیشفرض کارش همین هست.
دوست عزيز
اتفاقا مشكل پيش مياد.
دوبار پيغام ميده. چون ............

salehvasaleh
پنج شنبه 31 تیر 1389, 18:43 عصر
قوانين كلي سايت:
قانون شماره 17
برای تشکر از دیگر کاربران روی تصویر http://barnamenevis.org/forum/images/buttons/post_thanks.gif زیر مطلب فرد مورد نظر کلیک کنید. ارسال متونی که صرفا برای تشکر و احوال پرسی نوشته می شوند، ممنوع است.
ممنون ازتذکرتون. ولی اگه منظورتون منم اگه دقت کرده باشید متوجه می شوید که من ضمن تشکر یک سوال جدید پرسیدم که این دیگه خلاف قوانین نیست. درسته؟؟

salehvasaleh
پنج شنبه 31 تیر 1389, 18:47 عصر
دوست عزيز
اتفاقا مشكل پيش مياد.
دوبار پيغام ميده. چون ............

حذف کردم و مشکلی پیش نیامد.

vandermond
پنج شنبه 31 تیر 1389, 18:48 عصر
ممنون ازتذکرتون. ولی اگه منظورتون منم اگه دقت کرده باشید متوجه می شوید که من ضمن تشکر یک سوال جدید پرسیدم که این دیگه خلاف قوانین نیست. درسته؟؟
ويرايش كردي؟؟؟؟؟
شايد هم من علامت سوال رو نديده بودم. ببخشيد

salehvasaleh
پنج شنبه 31 تیر 1389, 18:53 عصر
ويرايش كردي؟؟؟؟؟
شايد هم من علامت سوال رو نديده بودم. ببخشيد


نه خواهش می کنم این چه حرفیه. در پستم ننوشته ویرایش شده .... بهر حال باید به قانون احترام گذاشت بی خیال بگذریم.:لبخندساده:
راستی اگه می شه در مورد
{
e.Cancel = true;

}
else
{
// e.Cancel = false;


Application.OpenForms["form1"].Close();
{
یه توضیحی می دید. e.Cancel = true یعنی چی دقیقا؟

mmd2009
پنج شنبه 31 تیر 1389, 18:54 عصر
ببین برنامه زیر رو ایراد نداره.

دانلود (http://up.iranblog.com/Files1/239edcf2ae3c4dbcb72c.rar)

mmd2009
پنج شنبه 31 تیر 1389, 18:59 عصر
ببین دوست عزیز

طبق چیزی کن من میدونم و شاید هم اشتباه باشه

e.cancel

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

مثلا تو داری خروج میکنی

اگر برابر با true بذاریش عملیات متوقف میشه و چیزی انجام نمیشه و بر می گرده به حالت عادی

و اگر برابر با false باشه که مثل اینه که بگی عکس کنسل رو انجام بده.

البته توضیح من شاید اشتباه باشه.

vandermond
پنج شنبه 31 تیر 1389, 19:10 عصر
من از تمام كساني كه اين تاپيك رو ميخونن. چه الان و چه هر وقت ديگه اي عذر خواهي ميكنم.:خجالت: ببخشيد مشكل از كامپيوتر من هستش. نميدونم ويروس شايد باشه. الان بعضي كار ها رو دوبار انجام ميده. خيلي عجيبه. اين مشكل هم براي من چه اون دستور باشه چه نباشه هست. يعني دوبار پيام مياره.
خصوصا از salehvasaleh و mmd2009 واقعا عذر ميخوام.:خجالت:

mustafa13
جمعه 01 مرداد 1389, 09:16 صبح
سلام دوستان
من براي ورد به برنامه از userName و Password استفاده كرده ام به اين صورت كه موقع لود شده فرم اصلي فرم userNameو پسورد را صدا مي زنم در اين فرم دوتا باتون به نام هاي تاييد و انصراف هست .
در فرم اصلي در قسمت form closing اش براي خروج از برنامه تاييديه اي خواستم از كاربر درست
حال اگه در فرم يوزر نيم و پسورد هم اگه كاربر كليد انصراف را بزنه باز هم پيام موقع اي كه مي خواهي فرم اصلي را ببندي مي پرسه را اينجا هم مي پرسه چه كار كنم كه در فرم اي كه يوزر نيم و پسورد را مي خواهد نپرسد
با تشكر

salehvasaleh
جمعه 01 مرداد 1389, 10:30 صبح
سلام دوستان
من براي ورد به برنامه از userName و Password استفاده كرده ام به اين صورت كه موقع لود شده فرم اصلي فرم userNameو پسورد را صدا مي زنم در اين فرم دوتا باتون به نام هاي تاييد و انصراف هست .
در فرم اصلي در قسمت form closing اش براي خروج از برنامه تاييديه اي خواستم از كاربر درست
حال اگه در فرم يوزر نيم و پسورد هم اگه كاربر كليد انصراف را بزنه باز هم پيام موقع اي كه مي خواهي فرم اصلي را ببندي مي پرسه را اينجا هم مي پرسه چه كار كنم كه در فرم اي كه يوزر نيم و پسورد را مي خواهد نپرسد
با تشكر
خوب حتما شما همون دستور خروج فرم 2 رو برای دکمه انصراف فرم ورود نوشتید که بیاد حذفش کنید.

mustafa13
جمعه 01 مرداد 1389, 22:09 عصر
خوب حتما شما همون دستور خروج فرم 2 رو برای دکمه انصراف فرم ورود نوشتید که بیاد حذفش کنید.
نه دوست عزیز من این از این دستور استفاده کرده ام this.close();

mmd2009
جمعه 01 مرداد 1389, 23:37 عصر
با سلام

دوست عزیز میشه یک نمونه کد بذارید ببینمی چیکار کردید!!

چیزی که شما میگید یه کم مجهوله