TopMost vs TopLevel

0

Witam.

Chciałbym aby przy uruchomieniu mojego programu od razu pokazywało się drugie okno ale musi być nad oknem głównym.

Napisałem więc taki kod:

 private void glowne_Load(object sender, EventArgs e)
        {
            wybor wybor = new wybor();
            wybor.TopMost = true;
            wybor.Show();
        }

Jednak chciałbym aby okno drugie nie było zawsze na wierzchu ponieważ może być to uciążliwe, ale podstawiając za TopMost TopLevel okno pojawia się pod oknem głównym.

Co zrobić aby okno "wybor" pojawiało się nad oknem głównym ale żeby użytkownik nie był skazany na ciągłe jego oglądanie ;).

1

Chodzi ci może o

wybor.ShowDialog();

W ten sposób wybor pojawi się jako okno dialogowe i rzeczywiście będzie na wierzchu.

0

Ale wtedy nie widać okna pierwszego. Pojawia się po zamknięciu okna "wybor". Nie jest to aż tak wielki problem ale wolałbym żeby oba okna były widoczne.

0

dzieje się tak dlatego, ponieważ główne okno nie zostało jeszcze utworzone. Zamiast zdarzenia Load wykorzystaj zdarzenie Shown

private void glowne_Shown(object sender, EventArgs e)
        {
            wybor wybor = new wybor();
            wybor.ShowDialog();
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1