Zweites Form aufrufen und erstes deaktivieren



  • Hi!

    Ich versuche von einem Form über einen Button ein zweites Form aufzurufen, aber irgendwie will es nicht klappen...

    Wäre fürn kurzen Code sehr dankbar.



  • // In Form2:

    public ref class Form2 : public System::Windows::Forms::Form
    	{
            System::Windows::Forms::Form ^ m_parent;
    	public:
    		Form2(System::Windows::Forms::Form ^ MyParent)
    		{
                         m_parent = MyParent;
                     ...
    
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                     m_parent->Show();
                     this->Hide();
                 }
        };
    

    In Form1:

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                     if(!tmp)
                         tmp = gcnew Form2(this);
                     tmp->Show();
                     this->Hide();
                 }
    
        private:  Form2 ^ tmp;
    

    Fertig. 😉

    BR,
    Vinzenz



  • Mal ne Frage zu

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                     if(!tmp)
                         tmp = gcnew Form2(this);
                     tmp->Show();
                     this->Hide();
                 }
    
        private:  Form2 ^ tmp;
    

    Kann man "tmp = gcnew Form2(this);" nicht weglassen, weil das Objekt bei Methodenaufruf sowieso erzeugt wird?



  • Wo wird es denn erzeugt ?

    Soweit ich den gezeigten Quellcode sehe nur eine einzige stelle an der die Form erzeugt wird. Und die ist dort auch notwendig, irgendwo muss das Objekt herkommen.

    @Evil http://www.c-plusplus.net/forum/viewtopic-var-t-is-167591.html


Anmelden zum Antworten