O que preciso fazer para executar um aplicativo Windows Forms na bandeja do sistema?
Não é um aplicativo que pode minimizar a bandeja, mas existe apenas na bandeja, com nada mais que um ícone, dica de ferramenta e menu "clique com o botão direito".
c#
.net
winforms
system-tray
xyz
fonte
fonte
icon.Visible = false
, em seguida,Dispose()
o ícone ao sair do aplicativo. Caso contrário, você ainda verá o ícone após a saída do programa. Depois de testá-lo algumas vezes, você não saberá mais qual ícone é real.Respostas:
O artigo do projeto de código Criando um aplicativo da bandeja de tarefas fornece uma explicação e um exemplo muito simples da criação de um aplicativo que só existe na bandeja do sistema.
Altere basicamente a
Application.Run(new Form1());
linhaProgram.cs
para iniciar uma classe que herda deApplicationContext
e faça com que o construtor dessa classe inicialize umNotifyIcon
fonte
Como o mat1t diz - você precisa adicionar um NotifyIcon ao seu aplicativo e, em seguida, usar algo como o código a seguir para definir a dica de ferramenta e o menu de contexto:
Este código mostra o ícone apenas na bandeja do sistema:
O seguinte será necessário se você tiver um formulário (por qualquer motivo):
O clique direito para acessar o menu de contexto é tratado automaticamente, mas se você deseja executar alguma ação com o botão esquerdo, precisará adicionar um manipulador de cliques:
fonte
Eu escrevi um aplicativo traybar com o .NET 1.1 e não precisava de um formulário.
Primeiro, defina o objeto de inicialização do projeto como um Sub
Main
, definido em um módulo.Em seguida, crie programaticamente os componentes: o
NotifyIcon
eContextMenu
.Certifique-se de incluir um
MenuItem
"Sair" ou similar.Vincule o
ContextMenu
aoNotifyIcon
.Invocar
Application.Run()
.No manipulador de eventos para Quit,
MenuItem
certifique-se de chamar setNotifyIcon.Visible = False
, entãoApplication.Exit()
. Adicione o que você precisaContextMenu
e manipule adequadamente :)fonte
Form1
do código.Form1
.NotifyIcon
classe para criar o ícone da bandeja do sistema (atribua um ícone a ela).NotifyIcon
clique do mouse e à diferenciação entre o clique direito e esquerdo, configurando o menu de contexto e mostrando para qual botão foi pressionado (sempre / direito / esquerdo).Application.Run()
para manter o aplicativo em execução eApplication.Exit()
sair. Ou abool bRunning = true; while(bRunning){Application.DoEvents(); Thread.Sleep(10);}
. Em seguida, definabRunning = false;
para sair do aplicativo.fonte
O aplicativo "Bandeja do sistema" é apenas um aplicativo regular de formulários de vitória, a única diferença é que ele cria um ícone na área de bandeja do sistema do Windows. Para criar o ícone sys.tray, use o componente NotifyIcon, você pode encontrá-lo na Caixa de ferramentas (controles comuns) e modificar suas propriedades: Ícone, dica de ferramenta. Também permite lidar com mensagens de clique e clique duplo do mouse.
E mais uma coisa, para obter aparência e funcionalidade ou aplicativo de bandeja padrão. adicione linhas followinf no seu evento principal show de formulário:
fonte
Tanto quanto sei, você ainda precisa escrever o aplicativo usando um formulário, mas não tem controles no formulário e nunca o define como visível. Use o NotifyIcon (uma amostra do MSDN pode ser encontrada aqui ) para gravar seu aplicativo.
fonte
Aqui está como eu fiz isso com o Visual Studio 2010 , .NET 4
fonte
É uma estrutura muito amigável para o aplicativo da área de notificação ... basta adicionar o NotificationIcon ao formulário base e alterar o código gerado automaticamente para o código abaixo:
fonte
Basta adicionar
ao seu objeto de formulário. Você verá apenas um ícone na bandeja do sistema.
fonte