2013-02-05 13 views
6

Aggiungo un'icona al modulo che ho creato. Quando eseguo il programma tramite VS2012, l'icona viene visualizzata nella barra delle applicazioni. Ma dopo aver pubblicato il progetto e averlo installato, l'icona viene visualizzata nel bordo del modulo, ma non nella barra delle applicazioni. Cosa sto facendo di sbagliato qui?Icona di Windows Form non visualizzata nella barra delle applicazioni C#

Ho provato a ridimensionare l'icona.

+1

E cosa viene mostrato sulla barra delle applicazioni del sistema di produzione? È l'icona predefinita delle applicazioni 'WinForms'? –

+0

eMi ha risolto il mio problema. Grazie per l'aiuto! :) E sì, era l'icona della finestra vuota di default – Lahib

+1

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. –

risposta

14

Sei andato alle proprietà del progetto e hai impostato un'icona nella scheda Applicazione (questa dovrebbe essere ovviamente la stessa icona utilizzata per la finestra principale per evitare confusione)?

+0

Mo non l'ho fatto. Grazie per aver risolto il mio problema. – Lahib

+0

Siete i benvenuti :) – eMi

1

Sei andato alle proprietà della form e check line: Show icon = "True"?

0

È possibile provare ad aggiungere l'icona nell'area "proprietà notifyIcon> Icona".

0

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.

Problemi correlati