Form1 soll Form2 aufrufen

venson

Grünschnabel
hallo,

ein altes Tema aber für mich noch ungelöst:

Wie Rufe ich aus Form1 Form2 auf?

Code:
#pragma once
#include "Form2.cpp"
#include <ostream>
#include <iostream>
#include <windows.h>
#include <string.h>
#include "stdafx.h"
...
public: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
...
    Form2^ f2 = gcnew form2();
    form2->Show();
...
}	
...

geht nicht weil:
Code:
error C2065: 'Form2': nichtdeklarierter Bezeichner
 error C2065: 'f2': nichtdeklarierter Bezeichner
 error C2061: Syntaxfehler: Bezeichner 'form2'
error C2065: 'form2': nichtdeklarierter Bezeichner
 error C2227: Links von "->Show" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
1>        Typ ist ''unknown-type''

Ich hatte schon eine Halbwegs Funktionierende lösung:

Code:
Form^ Form2 = gcnew Form();
	Form2->ShowDialog();

aber die zeigte mir nur eine Leere Form an
How to do?
 
Zuletzt bearbeitet:
Hi und Willkommen bei tutorials.de :)

Da es sich hier um Winforms von .NET handelt, bitte weitere Fragen dazu hier stellen:
http://www.tutorials.de/net

Zum Thema:
Ist es jetzt "Form2" oder "form2" ?
Groß-/Kleinschreibung ist ein Unterschied.
Das ist dann auch der Fehler beim "gcnew form2".

Und in der nächsten Zeile, beim "->Show", musst du den Variablennamen f2 angeben, und nicht den Klassennamen form2.

Gruß
 
Die neue Form heißt Form2.h also groß geschrieben aber wie gesagt selbst wenn ich das schreibe:
Code:
    Form2^ f2 = gcnew Form();
    f2->Show();
bekomme ich vom Compiler den Fehler das Form2 nicht Deklariert sei:
Code:
'Form2': nichtdeklarierter Bezeichner
 error C2065: 'f2': nichtdeklarierter Bezeichner
 error C2065: 'f2': nichtdeklarierter Bezeichner
 Links von "->Show" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
 
Hast du überhaupt ein Form2 ?
Und wenn du ein Form2 haben willst, muss bei gcnew auch Form2 stehen und nicht einfach nur Form.

Lad vielleicht einmal das Projekt als Zip hier rauf. So kann man sich nicht wirklich ein Bild davon machen.
 
Hab ich getahn..

sprich die Cpp rausgenommen aber die header is noch drinne:

Form^ Form2 = gcnew Form();
Form2->ShowDialog();

verwende ich...Wieder nur Leere form
 
Du solltest dir wirklich dringend den Unterschied zwischen Klassen und Instanzen anschauen.
Mit anderen Worten Grundlagen.

1: Du erstellst ein Form. Form ist die Basisklasse, von der From1, Form2 usw abgeleitet werden.
Da ist nichts drin, kein Wunder dass es leer ist.
Du musst ein Form2 erstellen.
2: Als Variablennamen nicht Form2 nehmen. f2 hat doch gepasst.

Und du hättest die Zipdatei auch hier im Forum hochladen können.
 
...
Bei den zwei Codezeilen in deinem vorigen Beitrag
1) Statt "Form2" "f2" schreiben
2) dann statt "Form" "Form2" schreiben.
 

Neue Beiträge

Zurück