PDA

View Full Version : سوال: جلوگیری از بسته شدن فرم توسط ALT+F4



political
شنبه 29 فروردین 1388, 12:15 عصر
سلام ..
چطور مي شه كاري كرد كه تو محيط #C در حال اجراي برنامه كليدهاي Alt+F4 باعث بسته شدن پنجره جاري نشه؟
:متفکر:

hsmfaridmehr
شنبه 29 فروردین 1388, 12:55 عصر
privatevoid Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Alt && e.KeyCode==Keys.F4)
{
e.Handled = true;
}
}


البته این در صورتی که فرم دارای کنترل نباشه وگرنه ایونت KeyDown بقیه کنترل ها رو باید به این بفرستی

البته شاید راه بهتری هم باشه ولی این به نظر من امد

anderson
شنبه 29 فروردین 1388, 13:00 عصر
سلام لینک های زیر رو نگاه کن کمکت می کنن
http://barnamenevis.org/forum/showthread.php?t=107149&highlight=Alt

http://barnamenevis.org/forum/showthread.php?t=151667&highlight=Alt

1001 نکته در سی شارپ عالی (http://barnamenevis.org/forum/showthread.php?t=95001&highlight=Alt)

mahdi_7610
شنبه 29 فروردین 1388, 13:35 عصر
سلام



private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}


موفق باشید

hsmfaridmehr
شنبه 29 فروردین 1388, 13:47 عصر
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{

e.Cancel = true;

}



خوب این در تمام حالات از بسته شدن فرم جلوگیری میکنه ولی اون دوستمون فقط حالتی رو می خواست که Alt+F4 زده شده باشه

zahra111
شنبه 29 فروردین 1388, 19:33 عصر
حق با hsmfaridmehr (http://www.barnamenevis.org/forum/member.php?u=94097) هست. در همه حال از بسته شدن فرم جلوگیری میشه.

mahdi_7610
شنبه 29 فروردین 1388, 20:19 عصر
سلام

معذرت میخوام من درست سوال را متوجه نشده بودم

اینم پاسخ شما


protected override System.Boolean ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
if ((msg.Msg == 0x104) && (((int) msg.LParam) == 0x203e0001))
return true;
return false;
}

موفق باشید .

zahra111
جمعه 04 اردیبهشت 1388, 22:30 عصر
سلام

معذرت میخوام من درست سوال را متوجه نشده بودم

اینم پاسخ شما


protected override System.Boolean ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
if ((msg.Msg == 0x104) && (((int) msg.LParam) == 0x203e0001))
return true;
return false;
}

موفق باشید .
سلام. میشه در مورد کدتون توضیح بدین؟