Vorrei illustrare come creare un'icona nella systray, ma da codice senza usufruire dell'ambiente visual, questo perche' si capisca meglio la potenza delle icone nella systray.

In questi giorni sto sviluppando un'applicazione client/server che permette di chattare on line e di spedire mail sto sviluppando sia il server che il client, nonche' dll annesse, e mi sono cosi imbattuto nel problema di creare un'icona nella systray che rimanga attiva anche quando non c'e' la form visibile, certo direte voi basterebbe fare un servizio, ma c'e' un modo molto semplice, che ho utilizzato e sembra ben funzionare

Allora supponiamo di avere una Form sulla quale lavoriamo in varie maniere, ma vogliamo che questa form rimanga sempre attiva e vogliamo richiamarla al click del mouse sull'icona nella systray ecco come procedere:

Tra le dichiarazioni delle variabili globali inseriamo un'oggetto per ora non istanziato di tipo Notifyicon cosi:

Notifyicon  notifyIcon1 = null;
int a=0;

Ora il nostro oggetto e' visibile in tutto il codice della suddetta form.

Ora dentro al costruttore principale scriviamo:

public Form1()
  {
     InitializeComponent();
          
notifyIcon1 = new NotifyIcon(this.components);
            
notifyIcon1.Icon = new Icon("cm.ico");

notifyIcon1.Visible = true;

notifyIcon1.Text = "MESSAGGIO CHE VOLETE";

notifyIcon1.Click += new System.EventHandler(this.notifyIcon1_Click);
        
        }

Allora abbiamo aggiunto la nostra icona che si chiama cm.ico e ovviamente in questo caso si trova dentro la stessa cartella del programma.

L'abbiamo resa visibile, ed abbiamo impostato la comparsa di un messaggio informativo quando con il mouse sostiamo su di lei.


Inoltre abbiamo creato un'evento che fa capo ad un metodo this_notifyIcon1_Click.

Ora scriveremo un metodo del genere:

private void notifyIcon1_Click(object sender, EventArgs e)
{
     if(a==1)
    {
       a=0;
       this.Show();
       return;
       }      
        if(a==0)
    {
       a=1;
       this.Hide();
       return;
       }      
  }

Ora quando farete click sull'icona, in base al valore della variabile a che e' ridondante vedrete il vostro form apparire e sparire, ma sara' sempre presente e continuera' a lavorare in background proprio come se fosse un servizio.

Un'altro metodo utile per le icone nella systray e':

notifyIcon1.ShowBalloonTip(3000, "IL TITOLO", "IL MESSAGGIO", ToolTipIcon.Info);

Che fa apparire per circa 3 secondi (3000 millisecondi) un classico fumetto con un titolo ed un messaggio nonche' un'icona a scelta, bene ora che sapete come usare le notifyicon buona notifica a tutti! :)

pulsar4@alice.it