Cómo iconizar nuestra aplicación C# (C Sharp) de Visual Studio .Net 2010. Explicamos cómo ocultar nuestra aplicación y mostrar un icono en el área de notificación de Windows de forma sencilla usando NotifyIcon.

Explicaremos en este tutorial cómo ocultar una aplicación, desarrollada en C# (C Sharp) .Net, en el área de notificación de Windows, utilizando el componente no visual NotityIcon. Dicha aplicación quedará iniciada pero no se mostrará en la barra de tareas, en su lugar se mostrará un icono en el área de notificación de Windows:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Para conseguir este efecto seguiremos los siguientes pasos. En primer lugar añadiremos a nuestra aplicación el componente NotifyIcon del Cuadro de herramientas (en el grupo «Controles comunes»):

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Antes de configurar el componente NotifyIcon añadiremos un segundo componente MenuStrip que nos permitirá mostrar un menú emergente al pulsar con el botón derecho del ratón sobre el icono del área de notificación para poder interactuar con la aplicación (volver a mostrarla, cerrarla y ejecutar cualquier tarea). Para ello accederemos al «Cuadro de herramientas» y pulsaremos sobre «MenuStrip» del grupo «Menús y barras de herramientas»:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Seleccionaremos el componente MenuStrip añadido y estableceremos su propiedad «Name» a «mnuContextual»:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Pulsaremos con el botón derecho del ratón sobre el MenuStrip llamado ahora mnuContextual y seleccionaremos «Editar elementos»:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Desde aquí añadiremos todos los elementos del menú que queramos para nuestra aplicación. Los típicos para el caso de la aplicación oculta en el área de notificación son, al menos, «Mostrar» y «Cerrar», de forma que al iconizar la aplicación siempre podamos volver a mostrarla. Para añadir estos elementos seleccionaremos el tipo «MenuItem» y pulsaremos «Agregar»:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

En la propiedad «Name» de cada elemento de menú que añadamos estableceremos su valor adecuado para luego poder identificarlo. Por ejemplo para el menú «Mostrar aplicación» en la propiedad «Name» estableceremos «mnuMostrarAplicacion» y en la propiedad «Text» estableceremos el texto que se mostrará al usuario, por ejemplo «Abrir»:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

De esta forma añadiremos todos los elementos del menú emergente que queramos que se muestren al pulsar con el botón derecho del ratón sobre el icono de nuestra aplicación:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Ahora estableceremos el código C# para cada elemento de menú, para ello pulsaremos sobre el MenuStrip añadido mnuContextual, en la parte superior el asistente nos mostrará el menú contextual, haremos doble clic con el ratón sobre cada elemento del menú para añadir el código en su evento Click:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Para el caso del elemento «Abrir» que será el que muestre la aplicación oculta en el área de notificación, añadiremos el siguiente código C#:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Básicamente el código C# anterior muestra la aplicación para que vuelva a aparecer en la barra de tareas, establece el valor WindowsState del formulario a «Normal», activa el formulario y oculta el icono del área de notificación.

De la misma forma añadiremos el código para el resto de elementos de menú, por ejemplo si hemos añadido la opción de cerrar la aplicación en el elemento de menú «Cerrar» el código podría ser:

Una vez creado el menú emergente continuaremos configurando el componente NotifyIcon, para ello pulsaremos sobre él (aparece en la parte inferior del diseñador) y estableceremos las siguientes propiedades:

  • Name: nombre identificativo del componente, por ejemplo iconizarApp.
  • ContextMenuStrip: seleccionaremos el menú contextual añadido anteriormente mnuContextual.
  • Icon: podremos añadir un icono que será el que se muestre en el área de notificación o bien podremos establecer por código C# en tiempo de ejecución el icono de nuestra aplicación (así lo haremos más adelante).
  • Visible: estableceremos esta propiedad a «False» pues no queremos que se muestre el icono una vez ejecutada la aplicación si no cuando el usuario pulse un botón «Minimizar» o bien cuando minimice la aplicación.

Todas las propiedades anteriores se pueden establecer por código y así lo haremos como ejemplo:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Si queremos que al pulsar doble clic con el ratón sobre el icono de nuestra aplicación, en el área de notificación de Windows, se vuelva a mostrar (por ejemplo), deberemos acceder a los eventos del componente «NotifyIcon» seleccionándolo y pulsando en el icono «Eventos» de la ventana de «Propiedades»:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

En el desplegable del evento DoubleClick seleccionaremos el evento Click del elemento del menú que queramos que se ejecute, en nuestro caso mnuMostrarAplicacion_Click:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Nota: si queremos generar código C# independiente para el evento DoubleClick del NotifyIcon haremos doble clic sobre dicho evento y nos mostrará la ventana de código desde donde podremos generar el código fuente que queramos para este evento.

Una vez configurado el componente «NotifyIcon» añadiremos un botón «Minimizar» a nuestra aplicación (o cualquier otro componente como un menú o desde un evento). Cuando el usuario pulse sobre dicho botón la aplicación desaparecerá de la barra de tareas, también desaparecerá del escritorio y se mostrará un icono el el área de notificación. Para conseguir esto, en el evento «Click» del Button:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Añadiremos el siguiente código:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

El código C# anterior asigna el icono del formulario al NotifyIcon para que éste aparezca en el área de notificación, asigna en tiempo de ejecución el menú contextual «mnuContextual» al NotifyIcon (no hace falta hacer esto si lo hemos asignado en el componente gráfico en tiempo de diseño), asigna como texto del NotifyIcon el nombre de la aplicación (texto que se mostrará al pasar el ratón por encima del icono), muestra el icono en el área de notificación y oculta la aplicación del escritorio y de la barra de tareas.

Si además queremos que cuando el usuario minimice el formulario nuestra aplicación se oculte en el área de notificación, en el evento «Resize» del formulario:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Añadiremos el siguiente código C#:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

En el código anterior sería suficiente con «btMinimizar_Click(sender, e);» para llamar al procedimiento que oculta nuestra aplicación y muestra el icono en el área de notificación. Pero hemos aprovechado este ejemplo para indicar cómo mostrar un globo informativo en el área de notificación. Indicamos cada línea comentada:

Si además queremos realizar alguna acción cuando el usuario hace clic con el ratón sobre el globo informativo, añadiremos el código C# que queramos al evento BallonTipClicked del componente NotifyIcon (iconizarApp):

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Por ejemplo, si el usuario pulsa sobre el globo informativo la aplicación se mostrará, para ello añadiremos el siguiente código:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Ya podremos probar la aplicación, al pulsar el icono «Minimizar» aparecerá el icono de nuestra aplicación en el área de notificación y desaparecerá nuestra aplicación del escritorio y de la barra de tareas:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Al pulsar con el botón derecho del ratón sobre el icono se mostrará el menú emergente:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Y si minimizamos la aplicación:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación

Nos mostrará el balón informativo y también se iconizará en el área de notificación:

Añadir icono aplicación área notificación Windows con C# iconizar aplicación