|
CSharp: Añadir icono aplicación área notificación Windows con C# iconizar aplicación
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.
Cómo iconizar una aplicación C# en el área de notificación de WindowsExplicaremos 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: 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"): 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 interacturar 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": Seleccionaremos el componente MenuStrip añadido y estableceremos su propiedad "Name" a "mnuContextual": Pulsaremos con el botón derecho del ratón sobre el MenuStrip llamado ahora mnuContextual y seleccionaremos "Editar elementos": 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": 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": 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: 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: 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#:
private void mnuMostrarAplicacion_Click(object sender, EventArgs e) { Show(); WindowState = FormWindowState.Normal; Activate(); iconizarApp.Visible = false; } 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:
private void mnuCerrar_Click(object sender, EventArgs e) { Application.Exit(); } 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:
Todas las propiedades anteriores se pueden establecer por código y así lo haremos como ejemplo: 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": En el desplegable del evento DoubleClick seleccionaremos el evento Click del elemento del menú que queramos que se ejecute, en nuestro caso mnuMostrarAplicacion_Click:
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ñadiremos el siguiente código: private void btMinimizar_Click(object sender, EventArgs e) { iconizarApp.Icon = this.Icon; iconizarApp.ContextMenuStrip = this.mnuContextual; iconizarApp.Text = Application.ProductName; iconizarApp.Visible = true; this.Visible = false; } 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ñadiremos el siguiente código C#: private void formTwitter_Resize(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Minimized) { btMinimizar_Click(sender, e); iconizarApp.BalloonTipIcon = ToolTipIcon.Info; iconizarApp.BalloonTipTitle = Application.ProductName; iconizarApp.BalloonTipText = "La aplicación ha quedado ocultada " + "en el área de notificación. Para mostrarla haga " + "doble clic sobre el icono"; iconizarApp.ShowBalloonTip(8); } } 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: //Tipo de icono a mostrar el el globo informativo (Info, Error, None, Warning) iconizarApp.BalloonTipIcon = ToolTipIcon.Info; //Título del balón informativo (el nombre de la aplicación) iconizarApp.BalloonTipTitle = Application.ProductName; //Texto del balón informativo iconizarApp.BalloonTipText = "La aplicación ha quedado ocultada " + "en el área de notificación. Para mostrarla haga " + "doble clic sobre el icono"; //Tiempo que aparecerá hasta ocultarse automáticamente iconizarApp.ShowBalloonTip(8); 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): Por ejemplo, si el usuario pulsa sobre el globo informativo la aplicación se mostrará, para ello añadiremos el siguiente código: private void iconizarApp_BalloonTipClicked(object sender, EventArgs e) { mnuMostrarAplicacion_Click(sender, e); } 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: Al pulsar con el botón derecho del ratón sobre el icono se mostrará el menú emergente: Y si minimizamos la aplicación: Nos mostrará el balón informativo y también se iconizará en el área de notificación:
Artículos relacionados
CréditosArtículo realizado íntegramente por Alonsojpd fundador del Proyecto AjpdSoft. Anuncios
Enviado el Jueves, 22 agosto a las 00:11:00 por ajpdsoft
|
|