SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: Meta en Sábado 8 de Noviembre de 2008, 10:49

Título: El icono notifyIcon
Publicado por: Meta en Sábado 8 de Noviembre de 2008, 10:49
Hola:



        private void Form1_Load(object sender, EventArgs e)
        {
            notifyIcon1.Visible = true;
            ShowInTaskbar = false;
        }

        private void Form1_SizeChanged(object sender, EventArgs e)
        {
            if (WindowState == FormWindowState.Minimized)
            {
                notifyIcon1.Visible = true;
                //Justo aquí abajo cada vez que minimizo aparece este mensaje.
                //¿Hay una manera que sólo se muestre la priemra vez?
                notifyIcon1.ShowBalloonTip(3000, "Prueba", "Puede acceder a la aplicación desde este icono", ToolTipIcon.Info);
                Hide();
            }
            else
            {
                Show();
            }
        }

        private void notifyIcon1_DoubleClick(object sender, EventArgs e)
        {
            if (WindowState == FormWindowState.Minimized)
            {
                Show();
                WindowState = FormWindowState.Normal;
            }
            // ¿Esto para qué es? No noto ningún cambio.
            Activate();
            Focus();



Saludos.
Título: Re: El icono notifyIcon
Publicado por: sergios_ en Sábado 8 de Noviembre de 2008, 11:18
Hola,

Si lo que quieres es que el mensaje de aviso se muestre solo la primera vez que minimices el formulario se me ocurre que podrías usar algún tipo de "flag" que te indique si ya has mostrado el mensaje con anterioridad. Puedes añadir una variable miembro privada al formulario que se llame "BalloonTipShow" y que al iniciarse el programa tenga un valor por defecto de cero. Después en el evento "SizeChange" del formulario metes:

Código: Text
  1.  
  2. if(BalloonTipShow == 0)
  3. {
  4.     notifyIcon1.ShowBalloonTip(3000, "Prueba", "Puede acceder a la aplicación desde este icono", ToolTipIcon.Info);
  5.     BalloonTipShow = 1;
  6. }
  7.  
  8.  

Espero que te sirva de ayuda. Un saludo.
Título: Re: El icono notifyIcon
Publicado por: Meta en Sábado 8 de Noviembre de 2008, 15:53
Hola:

No me sale bien. Lo puse así.

Código: Text
  1.  private void Form1_SizeChanged(object sender, EventArgs e)
  2.         {
  3.            
  4.             if (WindowState == FormWindowState.Minimized)
  5.             {
  6.                 notifyIcon1.Visible = true;
  7.                 //Justo aquí abajo cada vez que minimizo aparece este mensaje.
  8.                 //¿Hay una manera que sólo se muestre la priemra vez?
  9.                 int uno = 0;
  10.                 if (uno == 0)
  11.                 {
  12.                     notifyIcon1.ShowBalloonTip(3000, "Prueba", "Puede acceder a la aplicación desde este icono", ToolTipIcon.Info);
  13.                     uno = 1;
  14.                 }
  15.                 Hide();
  16.             }
  17.             else
  18.             {
  19.                 Show();
  20.             }
  21.         }
  22.  

Saludos.
Título: Re: El icono notifyIcon
Publicado por: sergios_ en Sábado 8 de Noviembre de 2008, 17:49
Hola,

La variable que utilizas para saber si ya has mostrado el aviso la tienes que declarar a nivel de formulario. Es decir, en la sección de declaraciones de Form1, fuera de cualquier función, la declaras de la siguiente forma:

private int uno = 0;

Tal y como lo haces tú cada vez que entras en el método "SizeChanged" se crea la variable y se le da el valor cero antes del if por lo que no tiene ningún efecto.

Espero que esta vez te sirva. Un saludo.
Título: Re: El icono notifyIcon
Publicado por: Meta en Domingo 9 de Noviembre de 2008, 03:05
Hola:

Ya me funciona, muchas gracias.

Código: Text
  1.  
  2. private int uno = 0;
  3.         private void Form1_SizeChanged(object sender, EventArgs e)
  4.         {
  5.            
  6.             if (WindowState == FormWindowState.Minimized)
  7.             {
  8.                
  9.                 notifyIcon1.Visible = true;
  10.                 //Justo aquí abajo cada vez que minimizo aparece este mensaje.
  11.                 //¿Hay una manera que sólo se muestre la priemra vez?
  12.                
  13.                 if (uno == 0)
  14.                 {
  15.                     notifyIcon1.ShowBalloonTip(3000, "Prueba", "Puede acceder a la aplicación desde este icono", ToolTipIcon.Info);
  16.                     uno = 1;
  17.                 }
  18.                 Hide();
  19.             }
  20.             else
  21.             {
  22.                 Show();
  23.             }
  24.         }
  25.  
  26.         private void notifyIcon1_DoubleClick(object sender, EventArgs e)
  27.         {
  28.             if (WindowState == FormWindowState.Minimized)
  29.             {
  30.                 Show();
  31.                 WindowState = FormWindowState.Normal;
  32.             }
  33.             // ¿Eto para qué es? No noto ningún cambio.
  34.             Activate();
  35.             Focus();
  36.         }
  37.  
  38.  

Saludos.