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:
| Cecha | Okno modalne (Modal Dialog) | Okno niemodalne (Modeless / Modeless Dialog) |
|---|---|---|
| Blokowanie okna głównego | TAK – 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# / WPF | okno.ShowDialog(); | okno.Show(); |
| Przepływ kodu w programie | Kod metody zatrzymuje się na linii otwarcia okna i wznawia dopiero po jego zamknięciu | Kod wykonuje się dalej natychmiast po wyświetleniu okna |
| Typowe zastosowanie | Komunikaty błędów, potwierdzenia usunięcia danych, okno logowania, okno Zapisz jako | Paski 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 niemodalneShow().
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.