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ł.
Co jest pokazane na pasku zadań w ewidencji produkcji? Czy jest to domyślna ikona aplikacji 'WinForms'? –
eMi Rozwiązał mój problem. Dzięki za pomoc! :) I tak, to była domyślna ikona pustego okna. – Lahib
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. –