2013-02-05 13 views
6

Dodaję ikonę do formularza, który utworzyłem. Po uruchomieniu programu przez VS2012 ikona pojawia się na pasku zadań. Ale po opublikowaniu projektu i zainstalowaniu go ikona pojawia się na granicy formularza, ale nie na pasku zadań. Co ja tu robię źle?Ikona formularza systemu Windows nie jest wyświetlana na pasku zadań C#

Próbowałem zmienić rozmiar ikony.

+1

Co jest pokazane na pasku zadań w ewidencji produkcji? Czy jest to domyślna ikona aplikacji 'WinForms'? –

+0

eMi Rozwiązał mój problem. Dzięki za pomoc! :) I tak, to była domyślna ikona pustego okna. – Lahib

+1

Więc proszę przyjąć odpowiedź eMi. W ten sposób każdy wie, że znalazłeś rozwiązanie swojego problemu. Pomaga to innym osobom z tym samym problemem. –

Odpowiedz

14

Czy poszedłeś do właściwości projektu i ustawiłeś ikonę na zakładce Aplikacja (powinna to być oczywiście ta sama ikona, co okno główne, aby uniknąć nieporozumień)?

+0

Mo nie zrobiłem. Dziękuję za rozwiązanie mojego problemu. – Lahib

+0

Serdecznie zapraszamy :) – eMi

1

Czy przejdziesz do właściwości formularza i sprawdź linię: Pokaż ikonę = "Prawda"?

0

Możesz także spróbować dodać ikonę w obszarze "właściwości notifyIcon> Ikona".

0

Ikona okna dialogowego/formularza nie pojawia się na pasku zadań, dopóki nie otrzyma właściwej ostrości klawiatury. Nie jestem do końca pewien, na czym polega "właściwa" uwaga, ale ani ci, którzy stworzyli okna. Ten problem wiąże się z brakiem pierwszego zdarzenia aktywującego formularz (o tak, tak się dzieje regularnie). Może się to zdarzyć, gdy ukryjesz wszystkie formularze (w aplikacji Windows), a następnie wyświetlisz następny formularz.

Więc to nie działa:

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. 


Może to rade:

newForm.Shown += newForm_Shown ; 
newForm.Show() ; 
void newForm_Shown (object sender , EventArgs e) 
{ 
    currentForm.Hide() ; 
} 

Kiedy można, należy wyświetlić następny formularz przed ukryć poprzednią formę, a następnie ukryć obecny formularz podczas pokazanego/aktywowania wydarzenia w nowym formularzu. Dodatkowym workware, który wiem, jest wykonanie opóźnionej aktywacji formularza. Możesz spróbować czegoś takiego jak BeginInvoke na jakiejś formie aktywacji formularza, ale ogólnie jest to zły pomysł.

Powiązane problemy