si no quieres que tu formulario se cierre simplmente tienes que controlar el evento que se produce.
FormClosing: este evento se produse cuendo el formulario se esta cerrando;
FormClosed: y este otro evento se produce dèspues que el formulario se a serrado.
como o especificas el lenguaje pondre dos ejemplos y c# y el otro vb.net tanto en 2003 como en 2005 es similar
 c#
delegado 
Código:
 private void InitializeComponent()
{
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Closing_evento);
}
  
Código:
  private void Closing_evento(object sender, FormClosingEventArgs e)
    {
      //con este codigo el boton si se va a poder cerrar con el boton cerrar
       if (MessageBox.Show("esta seguro que desea salir", "", MessageBoxButtons.YesNo) == DialogResult.No)
           {
            e.Cancel = true; //canselas el evento
            this.Hide();
            }
     }
  ten en cuenta que el enlace del delegado con el evento va en el componente de inicialisacion  
vb 
Código:
  Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As FormClosingEventArgs) Handles MyBase.FormClosing
        If MessageBox.Show("esta seguro que desea salir", "", MessageBoxButtons.YesNo) = DialogResult.No Then
            e.Cancel = True
            Me.Hide()
        End If
    End Sub
  en vb es mucho mas sencillo, puedes usas el evento sin nesesidad del delegado  
 Cita:  o tambien puedes usar ControlBox=false, pero el valor de la propiedad vas a perder de vista al boton max , min y no vas a poder cerrar el formulario
    saludos a todo y si tienes alguna duda y esta denttro de mis pocibilidades ayudarte no dudes en comunicarate con migo 
[email protected]