Über Button ein weiteres Formular öffnen

tesarolle

Mitglied
Hallo,

leider eine absolute Newbie frage die mit SIcherheit fast jeder beantworten kann.

Ich habe ein Projekt und habe in dieses nocheinmal fast dasselbe Projekt importiert. Demzufolge sindd die Form-Bezeichnungen auch gleich.

Das einzige was ich nun haben möchte ist, das wenn ich auf meinen Butto klicke, sich das andere Formular öffnet. Nur ich weiss nicht wie das geht. WAhrscheinlich ist ddie Frage auch zu einfach weil ich nichts per Suchfunktion gefunden habe.

Wäre für hilfe sehr dankbar.

Mein Code hier t nicht, irgendwas fehtl anscheinend:

private void button1_Click(object sender, EventArgs e)
{
Form1.Show();
}
 
Naja so alt bin ich nun auch wieder nicht! (15 Jahre alt)!

Also ich kenn des ja eher so (So bietet mir das IntelliSense auch an):

Code:
HelpForm::Show(this);

Aber da kommt dann das bei raus:
illegal call of non-static member function

Das was die MSDN sagt bietet der mir gar nich an!
Gut ich probiers aus...
Ne! Des willer gar net!
error C2143: syntax error : missing ';' before '->'

Irgendwie stimmt da was mit dem neuen Codename "Orcas" net!:rolleyes:

Termy
 
Hä, grad hattest du doch noch C++ Express :confused:
Das funktioniert aber mit Orcas.
Fehlermeldung 1 lässt sich ganz leicht erklären:
Du versuchst die Methode Show statisch aufzurufen, ist sie aber nicht!

Fehlermeldung 2 sagt nichts aus ohne den Quellcode!
Poste doch mal deinen Code.
 
Ich hab auch C++ Express!
Aber eben die neueste BETA:
Microsoft Visual C++ Codename "Orcas" Express!

Hier mein Code:
Code:
HelpForm::Show(this);

Aber den kennst du ja schon!
Er löst den ersten Fehler aus! (
illegal call of non-static member function
)

Termy
 
OK, ich probiers nochmal:
C++:
Form2^ fm = gcnew Form2;
frm->Show();
Das ist der Code, der in der MSDN steht. Wenn du den ausführst (an deine Umgebung natürlich angepasst ;) ), welche Fehlermeldung kommt?
 
Das hört sich ja so an als führe kein Weg an einer Fehlermeldung vorbei...:rolleyes:

Naja...Zwischenfrage:

Ich hab die 2.Form (also die HelpForm) ja schon erstellt! Und die .h der Form in meiner Hauptform eingebunden. Er erkennt sie auch! Muss das dann noch sein? :

Code:
Form2^ fm = gcnew Form2;

Also wenn ich das nicht einfüge und dann das aus MSDN eingebe
Code:
HelpForm->Show();
kommt das dabei raus:
error C2143: syntax error : missing ';' before '->'
Wenn ich das aber so mache wie ich es gezeigt habe (also nicht mit dem -> sondern dem :: )
Code:
HelpForm::Show();
dann gibt er mir das aus:
illegal call of non-static member function

Kann es sein, dass man das irgendwie anders aufrufen muss? Also so dass es kein "illegal call";) mehr ist?

Termy
 
Zuletzt bearbeitet:
Das hört sich ja so an als führe kein Weg an einer Fehlermeldung vorbei...:rolleyes:
Hab ich nie behauptet. Wollte lediglich den Code sehen, der die 2. Fehlermeldung hervorruft.
Ich hab die 2.Form (also die HelpForm) ja schon erstellt! Und die .h der Form in meiner Hauptform eingebunden. Er erkennt sie auch! Muss das dann noch sein:

Code:
Form2^ fm = gcnew Form2;

Also wenn ich das nicht einfüge und dann das aus MSDN eingebe
Code:
HelpForm->Show();
kommt das dabei raus:
Du musst von deiner HelpForm eine Instanz erzeugen. Auf dieser kannst du dann Show aufrufen.
C++:
HelpForm^ frmHelp = gcnew HelpForm;
frmHelp->Show();
Wenn ich das aber so mache wie ich es gezeigt habe (also nicht mit dem -> sondern dem :: )
Code:
HelpForm::Show();
dann gibt er mir das aus:


Kann es sein, dass man das irgendwie anders aufrufen muss? Also so dass es kein "illegal call";) mehr ist?

Termy
Ja, in dem du die Methode wie im Beispiel ausführst, nämlich auf einer Instanz und nicht als statische Methode.
 
Zurück