Todo mundo já sabe que as aplicações
.NET precisam da ajuda do Framework para rodarem, assim como
Java precisa da
JVM. Pois bem, isso faz com que a aplicação se torne um pouco mais lenta, algo que se pode notar enquanto o programa carrega, por exemplo.
Se você criar uma aplicação pequena, que faça algo simples, mesmo assim ela vai carregar um bocado de memória logo no início. Se essa aplicação é executada várias vezes ao longo do dia, convém não fechar a mesma, mas fica complicado aquele programa ocupando espaço na barra de tarefas.
Por isso, vou ensinar agora como fazer sua aplicação ir para a
área de notificação (ao lado do relógio) quando for minimizada. Assim, com um duplo clique, ela volta num piscar de olhos para a tela principal para poder ser utilizada.
Crie um novo projeto no Visual Studio, ou adiciona em um projeto que você já tenha.

Aqui eu chamei o projeto de
SendToNotifyArea (bem sugestivo, não!?). Você pode simplesmente fazer isso em algum outro projeto que você tenha. Vá até a
ToolBox e em
Commom Controls procure por
NotifyIcon. O
NotifyIcon é um controle relativamente fácil de utilizar, não tem grandes segredos, basta você prestar bem atenção o que cada uma de suas propriedades faz.

Arraste ele para a sua aplicação e selecione um ícone para o
NotifyIcon clicando na seta que aparece ao lado do controle na parte inferior da janela de design da aplicação. Esse será o ícone que ficará aparecendo ao lado do relógio na área de notificação, por isso convém escolher um ícone que não seja muito comum por ali e que lembre um pouco a aplicação em si. Por exemplo, colocar o ícone igual ao de
"novo e-mail" do
Outlook Express é um problema certo.

Agora, nas propriedades do
NotifyIcon você pode preencher as propriedades
BalloonTipIcon,
BalloonTipText e
BalloonTipTitle conforme você achar necessário. Só acho interessante que no
BalloonTipText apareça como se faz para aparecer de novo o aplicativo. Caso deseje que o ícone fique fixo na área de notificação deixe a propriedade
Visible como
true.
BalloonTipIcon : O ícone que aparece no balão
BalloonTipText : Texto que aparecerá no balão
BalloonTipTitle: Título que aparecerá na parte superior

Agora é no braço, temos que setar o evento que vai chamar tudo isso. Nas Propriedades do
Form, clique no raio para selecionar os eventos e procure o evento
Resize. Dê um duplo clique para ir ao modo
Code.
Digite as seguintes linhas:
private void Form1_Resize(object sender, EventArgs e)
{
// Faz a aplicação sumir da barra de tarefas.
this.ShowInTaskbar=false;
// Mostra o balão com as informações que selecionamos.
// O parâmetro passado refere-se ao tempo (ms)
// em que ficará aparecendo. Coloque "0" se quiser
// que ele se feche somente quando o usuário clica-lo.
notifyIcon1.ShowBalloonTip(3000);
// Ativa o ícone na área de notificação,
// para isso a propriedade Visible deveria ser setada
// como false, mas prefiro deixar o ícone fixo lá.
// notifyIcon1.Visible=true;
}
Esse não é o final. Agora temos que voltar tudo atrás para que o
Form volte a aparecer.
Vá novamente no painel de propriedades, mas agora do
NotifyIcon, clique no raio para selecionar os eventos e procure o evento
MouseDoubleClick. Dê um duplo clique para ir ao modo
Code.
Digite as seguintes linhas:
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
// Faz a aplicação aparecer na barra de tarefas.
this.ShowInTaskbar=true;
// Levando o Form de volta para a tela.
this.WindowState=FormWindowState.Normal;
// Faz desaparecer o ícone na área de notificação,
// para isso a propriedade Visible deveria ser setada
// como true no evento Resize do Form.
// notifyIcon1.Visible=false;
}
Bom, com isso você consegue fazer sua aplicação ficar rodando sem incomodar ninguém.
Ah, outra coisa, existem aplicações, como o
MSN, que ao clicar no
X o programa faz a ação que expliquei acima ao invés de fechar. Caso deseja que isso ocorra, ao invés de colocar os códigos no evento
Resize, coloque no evento
FormClosing, com um detalhe, você deverá incluir as seguintes linhas a mais:
[no
FormClosing]
e.Cancel=true; // Cancela o evento padrão, de fechamento.
this.Visible=false; // Faz o Form desaparecer.
[no
MouseDoubleClick]
this.Visible=true; // Faz o Form reaparecer na tela.

Falow
Nenhum comentário:
Postar um comentário