Form::Close(): ist DialogResult noch zugänglich?



  • Hallo,

    in einem Form macht ein this->Close() laut Doku ein Dispose() aufs Fenster.
    Gilt das auch für's DialogResult?

    http://msdn2.microsoft.com/en-us/library/3cc9y48w.aspx#

    The Dispose method leaves the Component in an unusable state

    Geh ich dann richtig in der Annahme, dass folgendes nicht erlaubt ist:

    int main(array<System::String ^> ^args)
    {
        myForm ^ mf = gcnew myForm;
    
        Application::Run(mf);
    
        // hier geht's weiter wenn das Fenster geschlossen (und somit
        // Dispose()d) worden ist.
        if (mf->DialogResult == DialogResult::OK)
        {doSomething();}
    }
    

    Exeptions fliegen einem dabei zumindest nicht um die Ohren und funktionieren tuts...



  • ShowDialog liefert Dir das zurück was Du haben willst:

    if(openFileDialog1->ShowDialog() == ::DialogResult::Cancel)
    			return;
    

    Der Zugriff auf die Daten ist nach dem "Zerstören" eines Objektes nicht gesichert also lieber nen anderen Weg suchen. Das gibt einen von den "tauchen selten auf und nur bei den Kunden" fehler, die dann immer Kollegen suchen müssen und ewig drann kanppern 🙂



  • Da hast du wohl recht.
    Zum "Glück" ist mir die Exception kurz vorm Release selber noch um die Ohren geflogen,
    wenn auch nicht vom DialogResult verursacht... 🤡

    ShowDialog() statt dem Application::Run() ist gleich viel schöner 🙂

    Danke.


Anmelden zum Antworten