جلوگیری از بسته شدن فرم با دکمه های Alt+F4
برای جلوگیری از بسته شدن فرم با دکمه های Alt+F4 در رویداد KeyDown فرم کد زیر را بنویسید :
private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.Alt && e.KeyCode == Keys.F4) e.SuppressKeyPress = true; }
یا در solution Explorer بر روی program.cs دوبار کلیک کنید و کدهای زیر را در آن بنویسید:
using System; using System.Windows.Forms; namespace AltF4 { static class Program { [STAThread] static void Main() { Application.SetCompatibleTextRenderingDefault(false); Application.AddMessageFilter(new AltF4Filter()); Application.EnableVisualStyles(); Application.Run(new Form1()); } public class AltF4Filter : IMessageFilter { public bool PreFilterMessage(ref Message m) { const int WM_SYSKEYDOWN = 0x0104; if (m.Msg == WM_SYSKEYDOWN) { bool alt = ((int)m.LParam & 0x20000000) != 0; if (alt && (m.WParam == new IntPtr((int)Keys.F4))) return true; } return false; } } } }
با سلام
شما می توانید به جای دستورات بالا در رویداد Form Closing از این دستور استفاده کنید:
e.Cancel = true;
با سلام من کد اولی رو در keydown زدم کار کرد ممنون از اموزش هاتون
سلام کد بالا رو برای اینکه اجرا بشه باید در keypress بنویسید .
ممنون
کار کرد .
کد پایینی بهتره، ممنون از راهنماییتون
بله همون جوری که آموزش دادین عمل کردم و روی فرمی که هیچ گونه شئیی داخلش نباشه جواب میده(فرم خالی) ولی اگر حتی یک button هم به فرم اضافه کنیم دیگه جواب نمیده . میشه بررسی کنید و کد صحیحش رو بنویسید.
کاملا درسته، چون شما روی رویداد دوبار کلیک نکردین و همه کد بالا رو Copy – paste کردین
سلام
من از کد بالا در رویداد KeyDown فرم استفاده کردم و کار نکرد. لطفا بررسی کنید