Un'icona di finestra di dialogo/modulo non viene visualizzata sulla barra delle applicazioni finché non riceve il focus della tastiera corretto. Non sono abbastanza sicuro di quale sia il focus "corretto", ma nemmeno quelli che hanno creato Windows. Questo problema deriva dal fatto che manca il primo evento di attivazione della forma (oh sì, è normale). Ciò può accadere quando si nascondono tutti i moduli (nell'applicazione Windows) e quindi si visualizza il modulo successivo.
Quindi questo non funziona:
newForm.Show() ;
currentForm.Hide() ; //The newForm does not have the proper focus yet
// actualy in this moment (I think) your application loose focus beacuse there is no application window.
Questo può fare il trucco:
newForm.Shown += newForm_Shown ;
newForm.Show() ;
void newForm_Shown (object sender , EventArgs e)
{
currentForm.Hide() ;
}
Ogni volta che si può, si deve indicare la forma successiva prima di nascondere modulo precedente, e quindi nascondere la forma corrente durante l'evento di visualizzazione/attivazione del nuovo modulo. Il workournd aggiuntivo che so è eseguire un'attivazione ritardata del modulo. Potresti provare qualcosa come BeginInvoke su qualche metodo di attivazione del modulo, ma questa è una cattiva idea in generale.
E cosa viene mostrato sulla barra delle applicazioni del sistema di produzione? È l'icona predefinita delle applicazioni 'WinForms'? –
eMi ha risolto il mio problema. Grazie per l'aiuto! :) E sì, era l'icona della finestra vuota di default – Lahib
Quindi per favore accetta la risposta di eMi. In questo modo tutti sanno che hai trovato la soluzione al tuo problema. Questo aiuta altre persone con lo stesso problema. –