Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

softklin

Ocultar form no arranque do programa

Mensagens Recomendadas

softklin

Boas pessoal. Antes de mais peço desculpa pela dúvida básica, mas parece que não encontro uma solução que vá de acordo com as minhas necessidades.

Então é assim: eu tenho um formulário com o qual a aplicação começa, que possui também um NotifyIcon. O que queria era arrancar a aplicação, mostrando apenas o notifyIcon, e a janela ficasse oculta (para o utilizador a poder chamar quando seleccionasse a opção no menu).

Actualmente no meu form_load tenho isto:

        private void frmPlugins_Load(object sender, EventArgs e)
        {
            trayIcon.Icon = Properties.Resources.mmr;
            trayIcon.Visible = true;

            this.WindowState = FormWindowState.Minimized;
            this.Visible = false;
            this.Opacity = 0;
        }

O problema é que o formulário continua a ser mostrado como uma janela activa no Gestor de tarefas, e também é mostrado no ctrl + tab (uma pequena miniatura da janela) (de notar que tenho a opção ShowInTaskabar = false). Alguém me consegue indicar uma maneira limpa de resolver isto?

Cumps.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
softklin

Obrigado merlin, é exactamente isso que preciso! O único problema é que parece que o método load carrega antes de mostrar o form, e ele aparece novamente. Há algum método que corra logo após mostrar o formulário?

Mas é mesmo isso, experimentei aplicar isso a um botão, e já não apareceu no Gestor de tarefas.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
softklin

Encontrei um evento que é executado logo após encontrar o formulário, é o evento "Shown", no qual coloquei o código:

this.Hide();

Juntamente com a propriedade Opacity do form a 0, consegui o efeito desejado, apenas mostrar o NotifyIcon no arranque. É uma técnica um bocado manhosa, mas funciona como pretendo.

Fica também a página do MSDN:

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.shown%28VS.80%29.aspx


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
merlin3000

lol agora fiquei curioso, mas se puseres o

this.WindowState = FormWindowState.Minimized; 

em vez do opacity também deve funcionar.


Criar é Divertido

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
softklin

Se puser a arrancar com a janela minimizada, quando chamar o .Show(), ele aparece-me minimizado, mesmo colocando:

            this.Show();
            this.WindowState = FormWindowState.Normal;

quando quero abri-lo. Colocar antes do this.Show também não funciona. O que é mais estranho, é que se colocar Maximized, ele abre-me realmente a janela maximizada... :hmm: Mas a minha janela tem tamanho fixo e não queria que fosse redimensionada.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
merlin3000

estranho fiz agora um teste com apenas uma form em que a form se esconde por defeito ao iniciar com o minimized e depois no notify icon tenho

private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
     this.Show();
     this.WindowState = FormWindowState.Normal;
} 

e funciona. Quando carrego no notify icon este abre a janela.


Criar é Divertido

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.