1. Porquê do exemplo
Acompanhando fórums e
Newsgroups, percebi que algumas pessoas têm dúvidas em relação ao uso do
NotifyIcon. Observando isso, resolvi criar uma aplicação simples, contendo
somente um Form, Label, TextBox e NotifyIcon que, ao minimizarmos o Form, um
NotifyIcon é criado na System Tray exibindo um balão de informações (contidas ou
não no TextBox) e, ao clicarmos duas vezes sobre o NotifyIcon exibido, o Form é
reexibido e o NotifyIcon é escondido.
Quero deixar claro que este
artigo é pro pessoal iniciante, por isso, tentarei detalhar o procedimento o
melhor que puder.
2. Criando o Form e a
NotifyIcon
Criemos então, um novo
projeto usando Visual C# 2005 Express ou Visual Basic 2005 Express (é claro que
tudo o que veremos aqui funciona também nas versões pagas do Visual Studio 2005,
mas usarei completamente as versões Express no desenvolver dos
artigos).
No form que já aparece
criado no projeto, vamos alterar as propriedades: (Name = FormExemplo; Text =
Exemplo; FormBorderStyle = FixedSingle; MaximizeBox = false).
Feito isso, insira no Form
um Label (Name = labelTexto; Text = Texto), um TextBox (Name
= textBoxTexto) e um NotifyIcon (Name = notifyIcon1; Icon = Algum ícone que você
quiser exibir; Visible = false) de modo que ele fique algo como a imagem abaixo
(todos esses controles estão localizados na parte Common Controls da
ToolBox):
Obs: É extremamente importante definir um ícone (icon - extensão .ico) para que a aplicação funcione.

Fig. 1: Layout do
FormExemplo
3. Criando os eventos
Vamos criar agora, o código
do evento Resize do Form, que tratará a ação de minimizar o Form.
Clique no Form e, na janela
de propriedades, clique no botão dos eventos (simbolizado por um raio) e dê um
duplo clique no evento Resize:

Fig. 2: Criando o evento Resize do
Form
O código para tal evento é
o seguinte (o código está comentado, por isso não detalharei no artigo a
funcionalidade das linhas de código abaixo):
C#
// As linhas abaixo criam um balão no
notifyIcon com algumas informações
// e mostram o notifyIcon e o
balão...
notifyIcon1.Visible = true;
// O toolTipText do notifyIcon e o
título do balão são setados com o mesmo
// texto do Form ("Exemplo" no
caso):
notifyIcon1.Text = this.Text;
notifyIcon1.BalloonTipTitle = this.Text;
// O
BalloonTipText não aceita texto vazio, portanto, se o texto do textBox estiver
vazio,
// atribuimos um texto fixo a ele como
vemos abaixo:
if (!this.textBoxTexto.Text.Equals(String.Empty))
{
notifyIcon1.BalloonTipText = this.textBoxTexto.Text;
}
else
{
notifyIcon1.BalloonTipText = "Clique
duas vezes no ícone para retornar à aplicação!";
}
// Aqui escondemos o form da
taskbar...
this.ShowInTaskbar = false;
// O valor que passamos neste método
indica o tempo que o balão vai aparecer.
// 0 (zero) no caso, significa que
mostraremos o balão até que o usuário o feche...
notifyIcon1.ShowBalloonTip(0);
VB.NET
' As linhas abaixo criam um balão no notifyIcon com algumas
informações
' e mostram o notifyIcon e o balão...
notifyIcon1.Visible = True
' O toolTipText do notifyIcon e o título do balão são
setados com o mesmo
' texto do Form ("Exemplo" no caso):
notifyIcon1.Text = Me.Text
notifyIcon1.BalloonTipTitle = Me.Text
' O
BalloonTipText não aceita texto vazio, portanto, se o texto do textBox estiver
vazio,
' atribuimos um texto fixo a ele como vemos
abaixo:
If Not
Me.textBoxTexto.Text.Equals(String.Empty) Then
notifyIcon1.BalloonTipText = Me.textBoxTexto.Text
Else
notifyIcon1.BalloonTipText = "Clique duas vezes no ícone para retornar à
aplicação!"
End If
' Aqui escondemos o form da taskbar...
Me.ShowInTaskbar = False
' O valor que passamos neste método indica o tempo que o
balão vai aparecer.
' 0 (zero) no caso, significa que mostraremos o balão até
que o usuário o feche...
notifyIcon1.ShowBalloonTip(0)
Feito isso, ao minimizarmos
o Form, ele desaparece da Task Bar e um NotifyIcon é criado na System
Tray.
Agora só falta a parte de,
ao dar duplo clique no NotifyIcon, o NotifyIcon ser ocultado e o Form ser
reexibido. Para isso, clique no NotifyIcon, abra a parte eventos na janela de
propriedades e dê um duplo clique no evento MouseDoubleClick:

Fig. 3: Criando o evento MouseDoubleClick do
NotifyIcon
O código para tal evento é
o seguinte:
C#
// Aqui escondemos o
notifyIcon:
notifyIcon1.Visible = false;
// Aqui restauramos o form e reexibimos
ele na taskbar...
this.WindowState = FormWindowState.Normal;
this.ShowInTaskbar = true;
VB.NET
' Aqui escondemos o notifyIcon:
NotifyIcon1.Visible = False
' Aqui restauramos o form e reexibimos ele na
taskbar...
Me.WindowState = FormWindowState.Normal
Me.ShowInTaskbar = True
Pronto! Com isso feito,
temos um Form que, ao minimizado some da Task Bar, exibe um NotifyIcon com um
balão informativo (com um texto que pode ser digitado no próprio Form) e que, ao
darmos duplo clique nele, restauramos o Form e escondemos o NotifyIcon. Simples,
não?
Pois é, como disse no
começo, esse artigo trata de um assunto muito simples que, porém, já vi várias
pessoas tendo dúvidas sobre ele...
Espero que tenham gostado
e, até a próxima!