オーバーライドしたWndProcでALT+F4のキー入力メッセージを捕獲し、何も処理しないことで無かったことにする。 ALT+F4を押したときにはWM_SYSKEYDOWNメッセージが送信されてくる。

public class Form1 : System.Windows.Forms.Form
{
    // 途中略

    // WndProcメソッドをオーバーライドし
    // ALT+F4で閉じることができないようにする
    protected override void WndProc( ref Message m )
    {
        const int WM_SYSKEYDOWN = 0x0104;
        const int VK_F4 = 0x73;

        // ウィンドウを閉じない
        if ( m.Msg == WM_SYSKEYDOWN && m.WParam.ToInt32() == VK_F4 ) 
        {
            // ALT+F4に対する処理を行わない
            m.Result = IntPtr.Zero;
        }
        else
        {
            base.WndProc( ref m );
        }
    }
}