2013-04-22 13 views
6

mia app è per la chat, e penso che se qualcuno ha bisogno di nascondere in fretta, ma non vuole per chiuderla, mi si avvicinò con questo:minimizzano al vassoio

private void button6_Click(object sender, EventArgs e) 
{ 
    this.WindowState = FormWindowState.Minimized; 
} 

però, invece di andare alla barra delle applicazioni, voglio che appaia (nessun popup) nel vassoio, solo l'icona di applicazioni, e quando un utente fa clic si ha bisogno di impostare questo

this.WindowState = FormWindowState.Normal; 

questo è possibile, come?

anche dalla barra di sistema intendo quello in basso a destra, accanto alla volta

io ancora non riesco a far funzionare tutto questo, nulla appare nella barra di notifica se faccio quello che ha detto voi ragazzi (btw: questo è il codice completo per ridurre al minimo)

private void button6_Click(object sender, EventArgs e) 
{ 
    this.WindowState = FormWindowState.Minimized; 


} 

private void Form_Resize(object sender, EventArgs e) 
{ 
    if (WindowState == FormWindowState.Minimized) 
    { 
     this.Hide(); 
    } 


} 

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

Perché non funziona?

+1

Non esiste una cosa come un "vassoio di sistema". Si chiama "area di notifica". Questo dovrebbe aiutarti a trovare il componente corretto per l'implementazione di questo, il 'NotifyIcon'. –

risposta

7

Gestire l'evento di ridimensionamento del modulo. In questo gestore, si ignora la funzionalità di base dell'evento di ridimensionamento per rendere il modulo ridotto a nella barra delle applicazioni e non alla barra delle applicazioni. Questo può essere fatto facendo il seguente nel gestore di eventi Ridimensionamento del modulo:

  1. Controllare se proprietà WindowState del form è impostata su FormWindowState.Minimized. Se sì, nascondi il modulo, attiva l'oggetto NotifyIcon e mostra la punta del fumetto che mostra alcune informazioni.
  2. Una volta che WindowState diventa FormWindowState.Normal, disabilitare l'oggetto NotifyIcon impostando la proprietà Visible su false.
  3. Ora si desidera che la finestra riappaia quando si fa doppio clic sull'oggetto NotifyIcon nella barra delle applicazioni. Per questo, gestisci l'evento MouseDoubleClick di NotifyIcon. Qui, si mostra il modulo utilizzando il metodo Show().

In caso sotto forma di ridimensionamento, fare il controllo là e nascondere il modulo

private void Form_Resize(object sender, EventArgs e) 
    { 
     if (WindowState == FormWindowState.Minimized) 
     { 
      this.Hide(); 
     } 
    } 

Poi quando si fa clic sull'icona della barra delle applicazioni semplicemente ripristinarlo.

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

consultare:
How do I minimize a WinForms application to the notification area?
minimize app to system tray

+0

SO dovrebbe avere anche un'opzione per contrassegnare le risposte duplicate! http://stackoverflow.com/a/6317078/762730 – Sandeep

+0

@Sandeep: vuole nascondere il popup anche non esattamente la stessa domanda altrimenti sono sempre felice di fare questo lavoro prima piuttosto che scrivere qui .. beh grazie per il tuo suggerimento. –

+0

ok Devo mancare qualcosa, non so cosa sia se potessi scriverlo completamente per me, perché sono stupido, qual è il codice completo che ho inserito, inoltre voglio ottenere l'app per il barra delle notazioni prima e non voglio che abbia un popup, o per nascondere il popup – Connor

5

Uso seguente codice:

if (WindowState == FormWindowState.Minimized) 
     { 
      this.Hide(); 
     } 

Quando si minimizza la forma, la nascondono. Dovrai implementare il codice sopra nell'evento Form_Resize.

Poi cliccando sull'icona della barra delle applicazioni appena ripristinare il suo stato come segue:

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

Sarà necessario utilizzare notifyIcon_Click evento per questo scopo.

Spero che sia utile.

Problemi correlati