Przejdź do treści głównej
INF.04Inżynieria Oprogramowania, Bezpieczeństwo i BHP

Okna dialogowe: Modalne vs Niemodalne

Typy okien dialogowych w GUI: okno modalne blokuje interakcję z oknem nadrzędnym do momentu jego zamknięcia (np. ShowDialog()), a okno niemodalne pozwala na równoległą pracę w obu oknach (Show()).

Okna modalne vs Okna niemodalne

W aplikacjach okienkowych (C# WinForms, WPF, Java Swing, aplikacje webowe) występują dwa podstawowe typy okien dialogowych:

CechaOkno modalne (Modal Dialog)Okno niemodalne (Modeless / Modeless Dialog)
Blokowanie okna głównegoTAK – blokuje dostęp do okna nadrzędnego (aplikacja czeka na akcję użytkownika)NIE – użytkownik może swobodnie przełączać się między oknami
Metoda otwarcia w C# / WPFokno.ShowDialog();okno.Show();
Przepływ kodu w programieKod metody zatrzymuje się na linii otwarcia okna i wznawia dopiero po jego zamknięciuKod wykonuje się dalej natychmiast po wyświetleniu okna
Typowe zastosowanieKomunikaty błędów, potwierdzenia usunięcia danych, okno logowania, okno Zapisz jakoPaski narzędzi, okno wyszukiwania (Znajdź i zamień), palety kolorów, podgląd wydruku
CSHARP
// Przykład w C# WPF / WinForms:
MojDialog dialog = new MojDialog();
bool? wynik = dialog.ShowDialog(); // Otwarcie MODALNE (blokujące)
if (wynik == true) {
    // Użytkownik kliknął OK
}

MojPodglad podglad = new MojPodglad();
podglad.Show(); // Otwarcie NIEMODALNE (nieblokujące)

Pułapki na egzaminie INF.04:

  • Okno niemodalne to okno, które pozwala na interakcję z oknem głównym bez konieczności jego uprzedniego zamykania (np. okno wyszukiwania tekstu w edytorze Word).
  • W C# metodą otwierającą okno modalne jest ShowDialog(), a niemodalne Show().

Chcesz sprawdzić to pojęcie w praktyce?

Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Okna dialogowe: Modalne vs Niemodalne lub rozpocznij trening.