Minimizar una aplicación .NET a la Tray Bar

Hay muchos casos en los cuales minimizar una aplicación a la barra tray es muy útil, generalmente para todas aquellas aplicaciones que corren de fondo (en background), como antivirus, firewalls, etc.

El framework de .NET pone a nuestra disposición un control “NotifyIcon”, con el cual podemos minimizar nuestras aplicaciones Windows Form en la barra tray.

Veremos un ejemplo, donde escribiremos unas pocas líneas de código en C# para minimizar una aplicación en la barra tray y restaurarla al hacer doble clic sobre la misma.

  • Abrir un proyecto Windows Form existente, o crear uno nuevo.
  • De la barra de herramientas buscar el control NotifyIcon y draguearlo al formulario base

  • Setear la siguientes propiedades:
    • Name: nombre del control, en mi caso lo nombré como “trayIcon”
    • Text: texto con el nombre que queremos que aparezca al posicionar el mouse sobre el ícono de la tray.
    • Icon: ícono con el que queremos que aparezca la aplicación en la tray bar.
    • Visible: en falso, para que la aplicación, al arrancar no se vea en la tray, la haremos visible recién al momento de minimizarla.
  • Agregar un manejador de eventos al evento Resize del formulario con el siguiente código:

private void formBase_Resize(object sender, EventArgs e)
{
      if (FormWindowState.Minimized == WindowState)
      {
            Hide();
            trayBar.Visible = true;
      }
}

  • Agregar un manejador de eventos al NotifyIcon.DoubleClick con siguiente código:

private void trayBar_MouseDoubleClick(object sender, MouseEventArgs e)
{
      Show();
      WindowState = FormWindowState.Normal;
      trayBar.Visible = false;
}

En este punto, nuestra aplicación ya se minimizará en la barra tray (en vez de la barra de tareas) y no volverá a aparecer hasta hacer doble clic sobre el ícono de la System Tray.

Si además queremos agregar un menú contextual, estos son los pasos a seguir:

  • Draguear al formulario el control ContextMenuStrip.
  • Haciendo clic derecho sobre el control ContextMenuStripinsertado, seleccionar Edit Menu.
  • Agregar las opciones del menu contextual, por ejemplo, “Restaurar” y “Cerrar”.
  • Escribir el código para los eventos clic de cada una de las opciones del menú contextual:
  • Finalmente, setear en el NotifyIcon la propiedad ContextMenuStip con el nuevo menu contextual recién creado.

private void toolStripMenuItemRestaurar_Click(object sender, EventArgs e)
{
      Show();
      WindowState = FormWindowState.Normal;
      trayBar.Visible = false;
}

private void toolStripMenuItemSalir_Click(object sender, EventArgs e)
{
      Application.Exit();
}

Vía: developer.com

6 comentario en este artículoDeje el suyo
  1. Con que programacion puedo hacer eso puedes ponerte el link de donde descargar porque no encuentro ninguna barra de NotifyIcon :S! ayuda men

  2. hola eduardo este tutorial se encuentra programado en c#.NET y son propiedades de los controles las cuales son muy utiles todo lo demas esta explicado arriba en el tutorial adios.

    gracias :D me sirvio de mucho!!!

    sigan asi.

  3. holaaaaaaaaa disculpa no podrias hacer una para visual studio.net (creo que en visual basic es que no he trabajado con c)

  4. Qué dundo este xero, cree que C# no es de Visual Studio, jajjaaja, qué ignoraten!

  5. Para el el lenguaje C#
    Quisiera saber con cual clase se puede manipular lo mayor posible la bandeja del sistema (también se le dice área de notificaciones).
    Quisiera por ejemplo hacer alguna aplicación que me permita ocultar cualquier icono de cualquier programa en ejecución.
    Sé que hay soft por ahí que lo hacen pero quisiera hacerlo yo mismo, tan sólo si me facilitaran la clase que tiene que ver con esta característica de windows.
    Recuerden que no deseo que mi software ponga un icono ahí (se como hacerlo), lo que quiero es manipular los iconos de otros programas…
    Gracias

  6. Muy buen aporte. No había podido encontrar nada sobre como hacerlo, todo muy complejo, pero esto es breve, cortito y al pie como debe ser. Excelente.
    Saludos y gracias.

1 mención a este artículo
Deje su comentario

Por favor, ingrese su nombre

Por favor, ingrese un correo-e válido

Por favor, ingrese su mensaje

luauf.com 2012

WordPress