Aprire form1 alla chiusura di form2

venerdì 18 giugno 2010 - 15.31

nrdmtt Profilo | Newbie

Ciao a tutti. Ultimamente mi sto cimentando in c++, e nella realizzazione di un progettino mi sono imbattuto in un problema a cui non riesco a trovare soluzione.
Lavoro in Visual studio 2010 sotto c++.

Ho creato due form (form1 e form2). Nella prima attraverso un sistema di login, se nome e psw sono corretti, apro la form2.
Per fare questo, in form1.h ho incluso form2.h

#include "Form1.h"

e poi, alla pressione del bottone (login) vado istaziare un oggetto di tipo Form2 e nascondere la form1

Form2 ^form2 = gcnew Form2(); form2->ShowDialog(); this->Visible = false;

Ora cerco il modo di far riapparire la form1 alla chiusura della seconda.
Ho provato includendo, in Form2.h, form1.h e poi istanziare un oggetto di tipo form1, ma non funziona (mi crea problemi in form1.h, non mi trova più il tipo form2).

Come faccio ad accedere alla form1 dalla form2?

Grazie


tigre Profilo | Junior Member

io di solito in visual basic 6 faccio cosi:

Unload Me (chiudo il form e sotto apro il secondo form)
Form2.Show 1

nrdmtt Profilo | Newbie

Oki, il problema e che non posso instanziare oggetti di tipo Form1 perchè non me lo vede come tipo in from2.h.
Come risolvo?

aiedail92 Profilo | Expert

Ciao

Devi separare la dichiarazione dalla definizione, lasciando la prima nel file .h, e mettendo la seconda nel file .cpp, in questo modo:

// Form1.h // ... public ref class Form1 : public Form { // ... private: System::Void button1_Click(Object^ sender, EventArgs^ e); };
// Form1.cpp #include "Form1.h" #include "Form2.h" System::Void Form1::button1_Click(Object^ sender, EventArgs^ e) { Form2^ f2 = gcnew Form2(); f2->ShowDialog(); }
// Form2.h // ... public ref class Form2 : public Form { // ... private: System::Void button1_Click(Object^ sender, EventArgs^ e); };
// Form2.cpp #include "Form2.h" #include "Form1.h" System::Void Form2::button1_Click(Object^ sender, EventArgs^ e) { Form1^ f1 = gcnew Form1(); f1->ShowDialog(); }

Fammi sapere se ci sono problemi, l'ho scritto senza testarlo

Luca

nrdmtt Profilo | Newbie

Mmh, non ci avevo pensato
Provo e ti faccio sapere, grazie. Gentilissimo

nrdmtt Profilo | Newbie

Funziona alla grande. Grazie mille.

aiedail92 Profilo | Expert

No problem, è un piacere

Luca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5