Visual Studio 2008: Problemlösung und allgemeine Windows-Forms-Frage
-
Guten Tag,
ich bin auf Visual Studio 2008 c++ Express Beta2 umgestiegen von 2005, das läuft(abgesehen davon, dass es Englisch ist) ganz gut.
Das erste Problem das es gab ließ sich lösen, da es vielleicht jemanden interessiert, wär dass vielleicht was fürs FAQ, obwohls noch niemand gefragt hat.
Es kam die Fehlermeldung beim kompilieren:
"error spawning cmd.exe"
Das lässt sich folgendermaßen beheben:
projekt -> XXX properties -> configuration properties -> Manifest Tool -> Input/Output -> embed Manifest: NoSo das war dass erste... jetzt die Frage(gilt wohl genauso für Studio 2005):
Ich möchte gerne in einem ersten Fenster "Starter" durch Klick eines Buttons ein anderes Fenster "Form1" öffnen und "Starter" schließen. So... "Starter" schließen ist leicht, das andere kann find ich nicht so leicht... hoffe Ihr könnt helfen:
private: System::Void button8_Click(System::Object^ sender, System::EventArgs^ e) { //Hier soll dass Fenster geöffnet werden (void)exit(0); }
Könnt ihr helfen???
mfg
Mr X
-
Klar
NeuesFenster.Show()
AltesFenster.Hide()
oder
AltesFenster.Close()
-
Das klappt nicht so ganz...
Zum öffnen des Fensters folgende Meldungen:e:\dokumente und einstellungen\philipp\desktop\eisenbahn-manager\eisenbahn-manager\Starter.h(153) : error C2065: 'Form1' : undeclared identifier
e:\dokumente und einstellungen\philipp\desktop\eisenbahn-manager\eisenbahn-manager\Starter.h(153) : error C2228: left of '.Show' must have class/struct/union
e:\dokumente und einstellungen\philipp\desktop\eisenbahn-manager\eisenbahn-manager\Starter.h(153) : error C2143: syntax error : missing ';' before '.'Die letzte sogar mehrfach für diese Zeile
Zum schließen diese:e:\dokumente und einstellungen\philipp\desktop\eisenbahn-manager\eisenbahn-manager\Starter.h(153) : error C2143: syntax error : missing ';' before '.'
Ebenfalls mehrfach...
mfg
Mr X
-
Na Form1 muss bekannt sein und bei Zeigern musst Du -> einsetzen, nicht .
-
Na Form1 muss bekannt sein
Wie mache ich die den bekannt?
bei Zeigern musst Du -> einsetzen, nicht .
Das war meine eigene Doofheit Danke dass du mein Brett vorm Kopf(teilweise weggehauen hast...
mfg
Mr X
-
Naja, Du musst Form1 includieren. Wenn Du aber nichts spezielles von der Form verwendest, kannst Du auch eine Variable System::Windows::Forms::Form deklarieren und die Instanz von Form1 so an die zweite Form übergeben.
Schau auch mal in die FAQ: Werte zwischen 2 Forms tauschen. Da findest Du auch noch wertvolle Hinweise zu dem Thema.
-
Irgendwie versteh ich das nicht so wirklich was im FAQ stand.
Und das ersetzen des Punktes durch einen -> brachte nur neue Fehlermeldungen von wegen Form1 is not a member of projektX::Starter
Ich habe Form1.h jdoch included. Was mache ich falsch?
-
Das wird man ohne weitere Informationen nicht wirklich sagen können.
Liegt Form1 denn im gleichen Namensraum ?
Wie gibst Du Form1 an ?
Verwendest Du auch eine Instanz von Form1 ?
-
Also... Das öffnen einer anderen Form klappt nun...Danke für die Hilfe.
Doch das schließen des alten Fensters funktioniert noch nicht. Es gibt nur Fehlermeldungen...
Ich möchte nicht alles schließen, denn das würde ich hinkriegen:(void)exit(0);
sondern, wenn ein Fenster geöffnet wird, soll ein anderes sich schließen.
Danke schon im voraus für Hilfe!!!
mfg
Mr X
-
Form2^ _NeuesFenster = gcnew Form2; _NeuesFenster->Show(); _NeuesFenster->Close();
-
Hier würde das Fenster kurz aufblitzen und gleich wieder geschlossen werden.
-
Ja weiß ich, dass ist doch nur ein Beispiel.