[c# VS] zamkniecie glownej formatki
Witam,
gdzie mozna ustawic w VS aby zamkniecie glownej formatki nie zamykalo programy, tylko aby program wylaczal sie po zamknieciu wszystkich okien?
nertos
Odpowiedzi: 5
Najlepiej umieścić ten kawałek kodu w procedurze obsługi zamykania okna głównego, czyli albo w _FormClosed, albo (jeszcze lepiej) w _FormClosing.
Co robi?
Sprawdza ile aplikacja ma otwartych form: int openFormsCount = Application.OpenForms.Count;
a potem w pętli (dla pewności pętla zrobiona jest od końca) zamyka każde z tych okien: Application.OpenForms[i].Close();
Czemu w pętli for i czemu od końca? Bo kolekcja, po której się iteruje z każdym przebiegiem się zmienia.
Nie sprawdzałem jednej rzeczy - co się dzieje, gdy któreś z tych OpenFormsów ma jakąś obsługę _FormClosing albo _FormClosed.
pozdrawiaMM
Czy mógłbym prosi o jakiś opis do tego kodu? Gdzie należy go umieścic i co on robi?
[code] int openFormsCount = Application.OpenForms.Count;
for (int i = openFormsCount; i == 0; i--)
{
Application.OpenForms[i].Close();
}[/code]
@Cyber Phantom krotko mowiac potrzebuje to aby po uruchomieniu projektu i kliknieciu przcisku zamknelo sie poprzednie okno, a gdy zrobie po prostu Close to zamknie sie caly projekt, Hide tez nie wchodzi w gre
Nie wiem czy oto chodzi... w SharpDevelop C# robi się to tak...
Żeby główna formatka się nie zamknęła po naciśnięciu X
[code]private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.UserClosing)
{
e.Cancel = true;
Hide();
}
}[/code]
Żeby program zamknął się po zamknięciu wszystkich formatek :-k
To bym musiał sprawdzić bo jakoś nie było mi to potrzebne...
Strona 1 / 1