PDA

View Full Version : رویداد مربوط به کلیک شدن دکمه Close



Mojtaba.Kh
سه شنبه 10 شهریور 1388, 10:50 صبح
سلام
کنترلگر رویداد مربوط به کلیک شدن دکمه "کلوز" فرم رو چطور میتوان به دست گرفت؟

Reza_Yarahmadi
سه شنبه 10 شهریور 1388, 12:24 عصر
میتونی از رویداد FormClosing استفاده کنی. بعد زدن دکمه Close این رویداد اجرا میشه. اگر قصد دارید از بستن فرم جلوگیری کنید و کار دیگه ای انجام بدید میتونید با کدی مثل کد زیر این کارو انجام بدید.

e.Cancel = true;

Mojtaba.Kh
پنج شنبه 12 شهریور 1388, 14:47 عصر
متشکرم اما
دوست من رویداد مربوط به کلیک شدن دکمه رو میخوام نه رویداد بسته شدن فرم

Davood_amega
پنج شنبه 12 شهریور 1388, 15:00 عصر
منظورت را متوجه نمی شم .
با استفاده از رویداد FormClosing میتونی هر کاری انجام بدی.

sepehr_sepehr
پنج شنبه 12 شهریور 1388, 18:05 عصر
میشه یه نمونه برای رویداد formclosing بنویسید؟

Mojtaba.Kh
پنج شنبه 12 شهریور 1388, 18:28 عصر
منظورت را متوجه نمی شم .
با استفاده از رویداد FormClosing میتونی هر کاری انجام بدی.

میدونم اما میخوام مستقیما به این رویداد دسترسی داشته باشم
میدونید چطور میشه اینکارو کرد؟

Mojtaba.Kh
پنج شنبه 12 شهریور 1388, 18:32 عصر
میشه یه نمونه برای رویداد formclosing بنویسید؟

یه نمونه چی؟
مثال؟
توی رویداد FormClosing فرم دستوراتی که میخواهیم قبل از بسته شدن فرم اجرا بشه رو مینویسیم

mahdi_7610
پنج شنبه 12 شهریور 1388, 21:11 عصر
ما که اخر هم منظور شما را متوجه نشدیم .


private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult result;
result = MessageBox.Show("Closing ...", "TestClosing", MessageBoxButtons.YesNo);
if (result != DialogResult.Yes)
e.Cancel = true;
}

موفق باشی

sepehr_sepehr
جمعه 13 شهریور 1388, 10:13 صبح
من این کد تو برنامم نوشتم ولی هیچ اتفاقی نیافتاد!!!

mahdi_7610
جمعه 13 شهریور 1388, 11:14 صبح
من این کد تو برنامم نوشتم ولی هیچ اتفاقی نیافتاد!!!

اين کد باعث ميشه وقتي شما قصد بستن فرم را داريد يک DialogBox براي شما باز بشه و از شما سوال کنه ايا فرم بسته شود يا نه

بايد توي رويداد FormClosing مربوط به فرمتون بنويسيد .

اگه باز نتونستی بگو یه نمونه بزارم

موفق باشيد

sepehr_sepehr
جمعه 13 شهریور 1388, 11:41 صبح
منم میخواستم همینجوری بشه ولی وقتی close زدم messagebox نشون داده نشد!!!و فرم بسته شد.

mahdi_7610
جمعه 13 شهریور 1388, 12:11 عصر
منم میخواستم همینجوری بشه ولی وقتی close زدم messagebox نشون داده نشد!!!و فرم بسته شد.
این نمونه را نگاه کن

موفق باشی

sepehr_sepehr
جمعه 13 شهریور 1388, 13:47 عصر
واقعا عجیبه نمیدونم چرا تو برنامه من این کد کار نمیکنه!!!!:متفکر::اشتباه:

Saeed.Masoumi
جمعه 13 شهریور 1388, 16:08 عصر
آخه شما اون متد رو اصلا فراخوانی نکردید 2 تا راه داری
1- تو لود فرم بنویس یا توی Form1.Designer.cs بنویس کنار بقیه فراخونی ها

this.FormClosing+=new FormClosingEventHandler(Form1_FormClosing);2-روی فرم یک بار کلیک کن F4 رو بزن از پروپرتیس Events رو انتخاب کن از Events روی عبارت FormClosing دوبار کلیک کن بعد این کد رو اضافه کن:



DialogResult result;
result = MessageBox.Show("Closing ...", "TestClosing", MessageBoxButtons.YesNo);
if (result != DialogResult.Yes)
e.Cancel = true;


در ضمن اون دوستی که سئوال پرسید برای رویداد مربوط به Close دوست عزیز این یک رویداد نیست که شما بتوانید مثلا آنرا Override کنید دقیقا نمی دونم چجوری فرم بسته می شود وقتی دکمه X را می زنیم اما می دانم رویدادی مربوط به اینکار در نظر گرفته نشده است.(شایدم باشه و من نمی دونم)

mustafa13
جمعه 13 شهریور 1388, 16:40 عصر
واقعا عجیبه نمیدونم چرا تو برنامه من این کد کار نمیکنه!!!!:متفکر::اشتباه:
سلام
شما باید بعد از این که کد ها تایپ کردی بروید از منوی build به ترتیب این ها را انجرا کنید
clean solution
rebuild solution
build solution
به شرط این که کد ها همون طوری که دوستمون گفته نوشته باشی

Mojtaba.Kh
شنبه 14 شهریور 1388, 11:36 صبح
[/code]
در ضمن اون دوستی که سئوال پرسید برای رویداد مربوط به Close دوست عزیز این یک رویداد نیست که شما بتوانید مثلا آنرا Override کنید دقیقا نمی دونم چجوری فرم بسته می شود وقتی دکمه X را می زنیم اما می دانم رویدادی مربوط به اینکار در نظر گرفته نشده است.(شایدم باشه و من نمی دونم)

[/LEFT][/QUOTE]
منم همینو میخوام
میشه مثلا وقتی رویداد کلیک فرم فایر شد به نوعی بفهمیم آیا دکمه X کلیک شده یا نه؟

Yasersadegh
شنبه 14 شهریور 1388, 11:49 صبح
میدونم اما میخوام مستقیما به این رویداد دسترسی داشته باشم
میدونید چطور میشه اینکارو کرد؟
سلام دوستان
دوست عزيز رويدادي مخصوصه كليك رويه دكمه close نيست ولي پيشنهادي دارم كه همون جواب رو ميده به شما!!
شما فرموتون احتمالا به سه روش بسته خواهد شد!!
1- دكمه close
2- يه button كه رويه فرم گذاشتيد يا منو و از اين چيزا!!
3- كليدهاي تركيبي Alt+F4!!

شما يه متغير سراسري تعريف كنيد و مقدارش رو 0 بزاريد!!
حال وقتي رويه button رويه فرم كليك شد يا رو منو و اينا كليك شد اين متغير 1 بشه!!(حالت 2) بعد رويه رويداد Keypress فرمت دكمه هاي Alt +F4 رو هم ميتوني بررسي كني كه اگه زده شده اين متغير 1 بشه!!(حالت3)
حالا تويه formclosing اين متغير رو بررسي كن اگه 0 بود يعني(حالت 1) دكمه close فرم زده شده!!:لبخند:
اميدوارم كه كمكي كرده باشم!!:لبخندساده:
موفق باشيد:چشمک:

sakiarsi
شنبه 14 شهریور 1388, 13:04 عصر
سلام رویه دکمه close کد زیر رو قرار بده

;()Form1.ActiveForm.Close

منظور از Form1 نامه فرمی است که در آن هستید و می خواهید آن را ببندید

Mojtaba.Kh
دوشنبه 16 شهریور 1388, 12:03 عصر
دوست عزيز رويدادي مخصوصه كليك رويه دكمه close نيست
مگه میشه؟
پس از کجا میفهمه که باید فرم بسته بشه؟

A.Farzin
شنبه 21 آذر 1388, 17:24 عصر
توی رویداد FormClosing فرم دستوراتی که میخواهی...

با سلام
اين رويداد در ليست رويدادهاي فرم وجود ندارد و از جمله رويدادهاي ديگري مانند Keydown، Keypress، Mousemove و ... نيز خبري نيست.
با اين حال از كجا ميشه فهميد رويدادهاي قابل برنامه‌نويسي يك كنترل چي‌هاست؟
اين رويدادها را چگونه ميتوان به كامبوباكس مربوطه افزود؟
ممنون