22 diciembre 2009

Minimizar una aplicación hecha en C# mostrando su icono en la bandeja de sistema

¿Alguna vez quisieron que su aplicación tuviera un acceso en la bandeja de sistema (system tray) , a la izquierda del reloj, si están en Windows? Pues bien, el código que escribo a continuación, si programan con C#, hará que al minimizar la ventana, apareczca un acceso en la anterioremente nombrada bandeja. Mas cuando restauren la ventana, desaparecerá.

Para ello habrán de llevar al diseño del formulario la herramienta NotifyIcon. Cuando la tengan, podrán cambiarle la propiedad Icon cn un icono que exista en el disco duro. Entoncesese será el icono que aparezca en la bandeja del sistema.


Marcando el objeto notifyIcon1, en eventos, cliquen en DoubleClick, así meteran código en el evento. Este será el código:

private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
//Hacemos visible el formulario
this.Show();
this.WindowState = FormWindowState.Normal;
//Ocultamos el icono de la bandeja de sistema
notifyIcon1.Visible = false;

}

Con esto aún no tenemos resuelto el objetivo. Ahora se programará el evento Resize del formulario:

private void Form1_Resize(object sender, EventArgs e)
{
//Si el estado actual de la ventana es "minimizado"...
if (this.WindowState == FormWindowState.Minimized)
{
//Ocultamos el formulario
this.Visible = false;
//Hacemos visible el icono de la bandeja del sistema
notifyIcon1.Visible = true;
}

}

Así quedará la aplicación cuando la ventana sea minimizada (el mapa de España es el icono).


Esto lo hee sacado de la web http://www.locualo.net/programacion/minimizar-bandeja-del-sistema-system-tray-net/00000090.aspx

Saludos

1 comentario:

  1. buen aport ,como puedo poner un icono a mi aplicacion en c# , asi como tu lo tien en la barra de tareas o otro icono ,ya que cuando uno tine una aplicacion sale siempre una ventana con un fondo blanco

    ResponderEliminar