Dicas sobre desenvolvimento de software, gestão e tributações

Rede Social

3 de outubro de 2015

Adicionar ícone na área de notificação C#


Na dica de hoje mostrarei como adicionar um ícone na área de notificações do windows (Aquela perto do relógio).

Começando com o objeto do ícone.
System.Windows.Forms.NotifyIcon meuIcone;

Depois indicando o local do arquivo de ícone.
Obs. O .ico é a extensão específica de ícones.
string caminhoIcon = @"D:\meuIcone.ico";

Inicializando e configurando o ícone.
meuIcone = new System.Windows.Forms.NotifyIcon();

Este é o texto que aparecerá quando o usuário colocar o mouse sobre o ícone (tooltip).
meuIcone.Text = "Título do meu ícone";

Setando se o ícone estará visível ou não. É bastante útil quando deseja-se que o ícone apareça em uma determinada situação ou evento.
meuIcone.Visible = true;

Desenhando o ícone com a imagem carregada anteriormente
meuIcone.Icon = new System.Drawing.Icon(caminhoIcon);

Pronto seu ícone será exibido.
Mas podemos adicionar algumas propriedades a mais e mais funcionalidades para ele do que somente exibí-lo.

Como por exemplo adicionar eventos. Este é um evento de duplo clique do mouse.
meuIcone.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(meuIcone_MouseDoubleClick);

Ou então adicionar um menu de contexto (É aquele que aparece quando clicamos com o botão direito do mouse sobre ele).
Vou mostrar um menu com dois itens, um para exibir seu aplicativo e outro para enviar um comando de fechar.
System.Windows.Forms.MenuItem[] items = new System.Windows.Forms.MenuItem[2];
System.Windows.Forms.MenuItem item = new System.Windows.Forms.MenuItem("Abrir o " + Globals.assData.Name);
System.Windows.Forms.MenuItem item2 = new System.Windows.Forms.MenuItem("Sair do " + Globals.assData.Name);
item.Click += item_Click;
item2.Click += item2_Click;
items[0] = item;
items[1] = item2;
meuIcone.ContextMenu = new System.Windows.Forms.ContextMenu(items);

E estes são os eventos de clique simples que serão acionado no menu de contexto.
private void item2_Click(object sender, EventArgs e)
{
Close();
}

private void item_Click(object sender, EventArgs e)
{
this.Show();
this.WindowState = System.Windows.WindowState.Normal;
}

Também é possível adicionar uma mensagem em forma de balloon (Aquelas mensagens que geralmente são temporárias e aparecem em cima do ícone)
meuIcone.BalloonTipText = "Meu aplicativo"; //Texto exibido no balloon
meuIcone.ShowBalloonTip(400); //tempo em que o balloon será exibido

0 comentários:

Postar um comentário