Closed Ereignis - Form schließen verhindern



  • Hallo,

    ich habe ein programm, das beim beenden in der statusleiste den Fortschritt anzeigt.

    private: Void this_Closed(System::Object ^  sender, System::EventArgs ^  e)
    {
        this->Cursor = Cursors::WaitCursor;
        // Timer starten
        this->timer_Closed->Enabled = true;
        WriteIni();
    }
    
    private: System::Void timer_Closed_Tick(System::Object^  sender, System::EventArgs^  e)
    {
        this->toolStripProgressBar1->Value++;
    
        if(this->toolStripProgressBar1->Value == 100)
        {
            // Erst hier soll die Anwendung beendet werden
            Application::Exit();
        }
    }
    

    Leider wird das From gleich geschlossen.

    Beim Closing-Ereignis kann man die "zerstörung" des Fensters abbrechen (e->Cancel = true)

    Geht das auch beim Closed-Ereignis (e->Cancel hab ich schon versucht, es ist ja kein CancelEventHandler)? Ich kann Closing nicht verwenden, weil ich noch ein childFrame habe, das ggf. nach speichern fragt.

    Wär echt nett für ne Anwort!



  • aus dem closed-Ereignis kannst du das Schließen des Fensters eigentlich nicht mehr verhindern. imho dient es ja dazu, zu erkennen ob das Fenster geschlossen wurde oder nicht. closing schließt das Fenster undsetzt löst nach dem Schließen das closed-Ereignis aus.

    Was willst du genau machen? Beim Beenden eine Statusleiste aktualisieren ist doch überflüssig, weil diese ja beim Schließen auch zerstört wird.

    Gruß
    physici



  • mmh, den einzigen weg, den ich kenn, in .NET zu verhindern das die form geschlossen wird ist die WndProc zu ueberschreiben und die msg abzufangen, bzw kann man eine MSGbox zwischen schalten, und fragen ob man das denn wirklich will.

    Ich wuerde aber auch gerne wissen ob man mit .NET 2 das besser machen kann??


Anmelden zum Antworten