2012-12-26 12 views
5

Mam aplikację WinForms, która obsługuje dane subskrypcji. Główna forma sprawdza, czy użytkownik znajduje się w magazynie danych (pliku xml), jeśli nie nazywam tego. UserDetails to formularz wprowadzania danych.ShowDialog() Nie pokazano formularza na głównym formularzu

else 
{ 
    Form frm = new UserDetails(); 
    frm.ShowDialog(); 
} 

Problem jest formą UserDetail nie jest na wierzchu i mogę wybrać główną postać.

+1

Zmieniłem twój tytuł. Zobacz, "[Czy w tytułach pytania powinny znaleźć się" znaczniki "?] (Http://meta.stackexchange.com/questions/19190/)", gdzie konsensus brzmi "nie, nie powinien". –

+0

Będę o tym pamiętać od teraz. – Frazzle

+0

Ustaw punkt przerwania dla tego kodu. Kiedy trafi, użyj Debug + Windows + Threads. Upewnij się, że działa na głównym wątku. –

Odpowiedz

7

Może się to zdarzyć, jeśli główny formularz to TopMost.

Spróbuj użyć

frm.ShowDialog(this); 

gdy wywoływana z głównego formularza.

Zapewni to, że okno dialogowe będzie wizualnym dzieckiem głównego formularza, a nawet jeśli główny formularz to TopMost, okno dialogowe będzie nad nim.

+0

Wywołanie 'fmr.ShowDialog()' z formularza 'TopMost = true' nadal powoduje umieszczenie okna dialogowego na wierzchu formularza TopMost. Więc nie sądzę, że to jest problem. –

+0

@Rotem Dziękuję Próbowałem frm.ShowDialog (this); ale to ten sam rezultat. Zaczynam się zastanawiać, czy to błąd vs2012. – Frazzle

+0

@Frazzle - Sprawdź, która z form powoduje problem: Spróbuj uruchomić okno dialogowe z nowego domyślnego formularza, i odwrotnie, spróbuj uruchomić domyślne okno dialogowe z głównego formularza. – Rotem

Powiązane problemy