Minimizar aplicaciones en la bandeja del sistema

Adnan Ashraf 15 febrero 2024
  1. Aplicación de formularios de Windows
  2. Bandeja del sistema
  3. Bandeja del sistema y notificación
  4. Minimizar la aplicación de Windows Forms en la bandeja del sistema
  5. Conclusión
Minimizar aplicaciones en la bandeja del sistema

Este artículo explica cómo minimizar las aplicaciones de Windows Forms en la bandeja del sistema en lugar de la barra de tareas usando C#. Antes de continuar, necesitamos un poco de información sobre las aplicaciones de Windows Forms y la bandeja del sistema, así que comencemos con eso.

Aplicación de formularios de Windows

Windows Forms es una biblioteca integrada en el marco .NET que se utiliza para crear interfaces gráficas de usuario (GUI) para aplicaciones de escritorio (y también aplicaciones web).

Los controles típicos en una aplicación de Windows Forms incluyen botones, menús, campos de texto, casillas de verificación, etc. Un registro o un formulario de inicio de sesión pueden ser ejemplos simples de una aplicación de Windows Forms.

Puede encontrar más información sobre la aplicación Window Form aquí.

Bandeja del sistema

Casi todas las aplicaciones de Windows Forms tienen la funcionalidad de minimizar la aplicación en la barra de tareas como rutina habitual. Esto es perfecto para aplicaciones que se usan con frecuencia y requieren un acceso rápido.

Sin embargo, ¿qué sucede si necesitamos mantener un programa ejecutándose en segundo plano que solo se usa ocasionalmente? Si minimizamos una aplicación de este tipo hacia la barra de tareas, llena la barra de tareas y la barra de tareas se llena de programas abiertos que son difíciles de navegar.

Para ello, podemos minimizar la aplicación a la bandeja del sistema. La bandeja del sistema se encuentra en la esquina inferior derecha de la barra de tareas.

Cada aplicación está simbolizada por un pequeño icono en la bandeja del sistema. La capacidad de acceder fácilmente a ella todavía está ahí, pero está oculta a su vista.

Las aplicaciones de ejecución prolongada, como los chats y el software antivirus, utilizan con frecuencia este método para evitar obstruir la vista del usuario. Sin embargo, estas aplicaciones continúan funcionando en segundo plano y pueden notificar al usuario con un globo de información si es necesario o si ocurre algún evento específico.

Bandeja del sistema y notificación

Para usar la bandeja del sistema, utilizamos el control NotifyIcon en el espacio de nombres llamado System.Windows.Forms.

Algunas propiedades importantes de NotifyIcon son las siguientes:

  • BalloonTipIcon: Indica el icono que aparecerá con la punta del globo.
  • BalloonTipText: Este texto aparecerá en la punta del globo.
  • BalloonTipTitle: Este es el título que se le da a la punta del globo.
  • Icono: esta es la propiedad más importante que se debe establecer en un archivo de icono que se muestra en la bandeja del sistema. Solo se admiten archivos .ico.
  • Texto: Este es el texto que aparece cuando pasas el cursor sobre el icono en la bandeja del sistema.
  • Visible: Esta es la propiedad para configurar la visibilidad del icono en la bandeja del sistema.

Algunas propiedades que estableceremos en nuestra aplicación son las siguientes.

private void Form1_Load(object sender, EventArgs e) {
  notifyIcon1.BalloonTipTitle = "System Tray";
  notifyIcon1.BalloonTipText = "Some Notification";
  notifyIcon1.Text = "System Tray App";
}

Minimizar la aplicación de Windows Forms en la bandeja del sistema

Aquí hay un procedimiento paso a paso para minimizar la aplicación en la bandeja del sistema en lugar de la barra de tareas.

  • Abra Visual Studio. Después de iniciar Visual Studio, debería aparecer el siguiente menú:

    Estudio visual

  • Seleccione Crear un nuevo proyecto en el menú, como se muestra en el fragmento anterior.
  • Cree una aplicación de Windows Forms seleccionando WindowsFormApp en el menú que se muestra en la aplicación. Luego, haga clic en el botón Siguiente.

    Crear proyecto

  • Finalmente, escribimos el nombre de la aplicación Windows Forms y hacemos clic en el botón Crear, como se muestra en la siguiente figura:

    Nombre del proyecto

  • Después de crear una aplicación estándar de Windows Forms, la primera tarea es tomar el Icono de notificación de la barra de herramientas y colocarlo en el formulario. Haga doble clic en la caja de herramientas y seleccione NotifyIcon del menú, como se muestra en la figura a continuación:

    Bandeja del sistema: icono de notificación

  • Después de hacer esto, abra la ventana de propiedades de NotifyIcon y establezca el estado visible en False, como se muestra en la siguiente figura:

    Ícono de notificación

  • Seleccione un icono para su aplicación que se mostrará en la bandeja del sistema. Si no seleccionó un icono para su aplicación, no verá la aplicación en la bandeja del sistema después de minimizarla.
  • Agregue el siguiente código en el NotifyIcon en el Método MouseDoubleClick:
    private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) {
      this.Show();
      notifyIcon1.Visible = false;
      WindowState = FormWindowState.Normal;
    }
    
  • El siguiente paso es agregar un evento a nuestro formulario. Para hacer esto, haga doble clic en el formulario y seleccione el evento redimensionar en el menú de eventos, como se muestra a continuación:

    Cambiar el tamaño del formulario

  • Ahora, agregue el siguiente código para activar el evento.
    private void Form1_Resize(object sender, EventArgs e) {
      if (WindowState == FormWindowState.Minimized) {
        this.Hide();
        notifyIcon1.Visible = true;
        notifyIcon1.ShowBalloonTip(1000);
      } else if (FormWindowState.Normal == this.WindowState) {
        notifyIcon1.Visible = false;
      }
    }
    
  • Además, agregue el siguiente código en el método Form1_Load para establecer las diversas propiedades de NotifyIcon.
    private void Form1_Load(object sender, EventArgs e) {
      notifyIcon1.BalloonTipTitle = "System Tray";
      notifyIcon1.BalloonTipText = "Some Notification";
      notifyIcon1.Text = "System Tray App";
    }
    
  • Hemos terminado, así que probemos nuestra aplicación. Cuando ejecutemos la aplicación, se desplegará el siguiente formulario:

    Formulario generado

  • La figura que se muestra muestra el estado de la bandeja del sistema antes de minimizar la aplicación. Aquí puede ver que la aplicación se muestra en la barra de tareas.

    Estado de la bandeja del sistema antes de minimizar

  • Cuando hacemos clic en el botón minimizar en el formulario, como se muestra a continuación. Luego, la aplicación se minimizará en la bandeja del sistema.

    Formulario generado 2

  • La figura muestra el estado de la bandeja del sistema después de minimizar la aplicación. Aquí puede ver que la aplicación se muestra en la bandeja del sistema.

    Estado de la bandeja del sistema después de minimizar

Conclusión

Las aplicaciones de Windows Forms están configuradas de forma predeterminada para minimizar en la barra de tareas. Sin embargo, las aplicaciones que normalmente se ejecutan en segundo plano (por ejemplo, el software antivirus) no deben minimizarse en la barra de tareas, ya que no es una buena idea apresurar la barra de tareas para las aplicaciones en segundo plano que se usan con menos frecuencia.

Gracias al NotifyIcon en Windows Forms, podemos anular para minimizar estas aplicaciones en la bandeja del sistema en lugar de la barra de tareas.