Mehrfach Formulare verhindern!



  • Hallo!

    über einen Button erzeuge ich ein Formular :

    TerminalForm=gcnew Terminal();
    TerminalForm->Show();

    Wie kann ich verhindern, dass bei jedem Button klick ein neues Fenster erzeugt wird?



  • static?



  • hmmm static ...

    public ref class Main : public System::Windows::Forms::Form
    {
    public:
    Terminal^ TerminalForm;

    ...

    so:
    static Terminal^ TerminalForm;

    ändert nix!



  • oder meinst Du so was :
    static bool TerminalAn=false;

    if(TerminalAn==false)
    {
    TerminalForm=gcnew Terminal(&TerminalAn);
    TerminalForm->Show();
    }

    und dann:
    public ref class Terminal : public System::Windows::Forms::Form
    {
    public:
    Terminal(bool * Status)
    {
    *Status=true;
    TStatus=Status;
    }
    private: bool * TStatus;
    protected:
    ~Terminal()
    {
    *TStatus=false;
    }

    Das funktioniert zwar aber sieht irgendwie unschön aus!!!

    Achso das mit dem * und ^ hab ich noch nicht so drauf !!!!



  • Ich meinte eher beim ButtonClick:

    void OnButtonClick(..)
    {
        static Terminal^ terminalForm = gcnew Terminal();
    }
    

    [Edit] Ich hab noch nicht so ganz ne Vorstellung von deinem Modell? Gehört ein Terminal zu einem anderen Fenster, ist also ein Member von ner Form? Dann kannst du das Handle aufs Terminal auf nullptr überprüfen etc.



  • Danke für den Tipp!

    So gehts:

    if(TerminalForm==nullptr)
    	{
    		TerminalForm=gcnew Terminal();
    		TerminalForm->Show();
    	}
    

Anmelden zum Antworten