Window Form neu öffnen



  • Wie kann ich eine Form (main) schliessen und gleich wieder öffnen lassen ?
    Problem ist, dass nach dem Close() das Programm beendet wird...
    Umgebung ist VS 2003 und C++.



  • Wenn ich dich richtig verstehe musste:

    .Hide();

    .Show();

    machen



  • Andere Frage:

    1. Form öffnet sich, bei Button-Klick öffnet sich eine 2. Form.
    Dabei wird 1. Form geschlossen.
    2. Form Button Klick -> 1. Form wieder öffnen und 2. Form schliessen.

    Hat jemand ne Lösung parat ?



  • Na wenn du s wirklich schließen willst zuerst Close() und dann wieder MyForm mainForm = new MyForm(); mainForm.Show() oder du versteckst s nur und zeigst es dann wieder an, so wie Lyrix das gemeint hat.

    Greetz



  • Hier ein einfacher Testcode.
    Ich komm einfach nicht wieder zurück zu Form1 (Login Fenster).

    #pragma once
    #include "Main.h"
    
    // Login Form
    
    namespace Test
    {
    	public __gc class Form1 : public System::Windows::Forms::Form
    	{	
    	public:
    		Form1(void)
    		{
    			InitializeComponent();
    		}
    
    	private: System::Windows::Forms::MainMenu *  mainMenu1;
    	private: System::Windows::Forms::Button *  buttonLogin;
    	private: System::Windows::Forms::MenuItem *  menuItemQuit;
    
    	private: System::Void buttonLogin_Click(System::Object *  sender, System::EventArgs *  e)
    			 {
    				 this->Hide();
                                     Main * myMain = new Main();
    				 myMain->Show();
    				 //Application::Run(Main());
    			 }
    
    	private: System::Void menuItemQuit_Click(System::Object *  sender, System::EventArgs *  e)
    			 {
    				 this->Close();
    			 }
    
    	};
    }
    
    #pragma once
    //#include "Form1.h"
    
    // Hauptfenster
    
    namespace Test
    {
    	public __gc class Main : public System::Windows::Forms::Form
    	{
    	public: 
    		Main(void)
    		{
    			InitializeComponent();
    		}
    
    	private: System::Windows::Forms::MainMenu *  mainMenu1;
    	private: System::Windows::Forms::MenuItem *  menuItemLogout;
    
    		}		
    	private: System::Void menuItemLogout_Click(System::Object *  sender, System::EventArgs *  e)
    			 {
    				 this->Close(); // Close beendet gleich komplettes Programm
    				 //System::Threading::Thread::CurrentThread->ApartmentState = System::Threading::ApartmentState::STA;
    				 //Application::Run(new Form1());
    
                                     // Code klappt nicht
    				 //Form1 * myLogin = new Form1();
    				 //myLogin->Show();
    			 }
    
    	};
    }
    

Anmelden zum Antworten