ERLEDIGT
NEIN
NEIN
ANTWORTEN
20
20
ZUGRIFFE
4969
4969
EMPFEHLEN
-
14.06.07 22:04 #1
- Registriert seit
- Jun 2007
- Beiträge
- 7
Hi Leute
Ich benutze Visual c++ 2005 Express.
Vorab ich bin Anfänger und ihr werdet euch sich totlachen aber folgendes Problem:
Ich hab ein Form1 erstellt wo ich über ein Menu ein zweites Form2 aufmache.Dieses Form2 hat eine TextBox1 und ein button1.Wenn ich jetzt etwas in die Textbox1 eintrage und den Button1 drücke soll dieser text in Form1 übertragen werden (wohin ist jetzt egal ich habs in ein label1 versucht).So und das schaffe ich einfach nicht.Ich bin soweit das ich den text von der Textbox1 in ein String einlese aber das wars auch schon.
Kann mir da einer helfen?
hier mein kompletter Code:
Form1.h
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
#pragma once #include "Form2.h" namespace training { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; /// <summary> /// Zusammenfassung für Form1 /// /// Warnung: Wenn Sie den Namen dieser Klasse ändern, müssen Sie auch /// die Ressourcendateiname-Eigenschaft für das Tool zur Kompilierung verwalteter Ressourcen ändern, /// das allen RESX-Dateien zugewiesen ist, von denen diese Klasse abhängt. /// Anderenfalls können die Designer nicht korrekt mit den lokalisierten Ressourcen /// arbeiten, die diesem Formular zugewiesen sind. /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: Konstruktorcode hier hinzufügen. // } protected: /// <summary> /// Verwendete Ressourcen bereinigen. /// </summary> ~Form1() { if (components) { delete components; } } private: System::Windows::Forms::MenuStrip^ menuStrip1; protected: private: System::Windows::Forms::ToolStripMenuItem^ dateiToolStripMenuItem; private: System::Windows::Forms::ToolStripMenuItem^ bearbeitenToolStripMenuItem; private: System::Windows::Forms::ToolStripMenuItem^ kateiHinzufügenToolStripMenuItem; public: System::Windows::Forms::TabPage^ tabPage1; private: System::Windows::Forms::Label^ label1; private: System::Windows::Forms::TabControl^ tabControl1; private: System::ComponentModel::IContainer^ components; private: /// <summary> /// Erforderliche Designervariable. /// </summary> #pragma region Windows Form Designer generated code /// <summary> /// Erforderliche Methode für die Designerunterstützung. /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. /// </summary> public: void InitializeComponent(void) { this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip()); this->dateiToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->bearbeitenToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->kateiHinzufügenToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->label1 = (gcnew System::Windows::Forms::Label()); this->tabPage1 = (gcnew System::Windows::Forms::TabPage()); this->tabControl1 = (gcnew System::Windows::Forms::TabControl()); this->menuStrip1->SuspendLayout(); this->tabControl1->SuspendLayout(); this->SuspendLayout(); // // menuStrip1 // this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->dateiToolStripMenuItem, this->bearbeitenToolStripMenuItem}); this->menuStrip1->Location = System::Drawing::Point(0, 0); this->menuStrip1->Name = L"menuStrip1"; this->menuStrip1->RenderMode = System::Windows::Forms::ToolStripRenderMode::System; this->menuStrip1->Size = System::Drawing::Size(989, 24); this->menuStrip1->TabIndex = 0; this->menuStrip1->Text = L"menuStrip1"; this->menuStrip1->ItemClicked += gcnew System::Windows::Forms::ToolStripItemClickedEventHandler(this, &Form1::menuStrip1_ItemClicked); // // dateiToolStripMenuItem // this->dateiToolStripMenuItem->Name = L"dateiToolStripMenuItem"; this->dateiToolStripMenuItem->Size = System::Drawing::Size(44, 20); this->dateiToolStripMenuItem->Text = L"Datei"; // // bearbeitenToolStripMenuItem // this->bearbeitenToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(1) {this->kateiHinzufügenToolStripMenuItem}); this->bearbeitenToolStripMenuItem->Name = L"bearbeitenToolStripMenuItem"; this->bearbeitenToolStripMenuItem->Size = System::Drawing::Size(70, 20); this->bearbeitenToolStripMenuItem->Text = L"Bearbeiten"; // // kateiHinzufügenToolStripMenuItem // this->kateiHinzufügenToolStripMenuItem->Name = L"kateiHinzufügenToolStripMenuItem"; this->kateiHinzufügenToolStripMenuItem->Size = System::Drawing::Size(155, 22); this->kateiHinzufügenToolStripMenuItem->Text = L"Katei Hinzufügen"; this->kateiHinzufügenToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::kateiHinzufügenToolStripMenuItem_Click); // // label1 // this->label1->AutoSize = true; this->label1->Location = System::Drawing::Point(276, 89); this->label1->Name = L"label1"; this->label1->Size = System::Drawing::Size(35, 13); this->label1->TabIndex = 2; this->label1->Text = L"label1"; // // tabControl1 // this->tabControl1->Location = System::Drawing::Point(2, 211); this->tabControl1->Name = L"tabControl1"; this->tabControl1->Padding = System::Drawing::Point(7, 3); this->tabControl1->SelectedIndex = 0; this->tabControl1->Size = System::Drawing::Size(986, 339); this->tabControl1->TabIndex = 1; // // Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(989, 553); this->Controls->Add(this->label1); this->Controls->Add(this->tabControl1); this->Controls->Add(this->menuStrip1); this->MainMenuStrip = this->menuStrip1; this->Name = L"Form1"; this->Text = L"Training"; this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load); this->menuStrip1->ResumeLayout(false); this->menuStrip1->PerformLayout(); this->tabControl1->ResumeLayout(false); this->ResumeLayout(false); this->PerformLayout(); } #pragma endregion private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { } public: System::Void kateiHinzufügenToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { Form2 ^frm2 = gcnew Form2(); frm2->ShowDialog(this); /*this->tabPage1 = (gcnew System::Windows::Forms::TabPage()); this->tabControl1->Controls->Add(this->tabPage1); this->tabPage1->Text = frm2->str; */ } private: System::Void menuStrip1_ItemClicked(System::Object^ sender, System::Windows::Forms::ToolStripItemClickedEventArgs^ e) { } }; }
Form2.h
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
#pragma once #include "Form1.h" namespace training { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; /// <summary> /// Zusammenfassung für Form2 /// /// Warnung: Wenn Sie den Namen dieser Klasse ändern, müssen Sie auch /// die Ressourcendateiname-Eigenschaft für das Tool zur Kompilierung verwalteter Ressourcen ändern, /// das allen RESX-Dateien zugewiesen ist, von denen diese Klasse abhängt. /// Anderenfalls können die Designer nicht korrekt mit den lokalisierten Ressourcen /// arbeiten, die diesem Formular zugewiesen sind. /// </summary> public ref class Form2 : public System::Windows::Forms::Form { public: Form2(void) { InitializeComponent(); // //TODO: Konstruktorcode hier hinzufügen. // } protected: /// <summary> /// Verwendete Ressourcen bereinigen. /// </summary> ~Form2() { if (components) { delete components; } } private: System::Windows::Forms::Label^ label1; public: System::Windows::Forms::Button^ button2; private: System::Windows::Forms::Button^ button1; private: System::Windows::Forms::TextBox^ textBox1; private: /// <summary> /// Erforderliche Designervariable. /// </summary> System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code /// <summary> /// Erforderliche Methode für die Designerunterstützung. /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. /// </summary> void InitializeComponent(void) { this->label1 = (gcnew System::Windows::Forms::Label()); this->textBox1 = (gcnew System::Windows::Forms::TextBox()); this->button1 = (gcnew System::Windows::Forms::Button()); this->button2 = (gcnew System::Windows::Forms::Button()); this->SuspendLayout(); // // label1 // this->label1->AutoSize = true; this->label1->Location = System::Drawing::Point(80, 9); this->label1->Name = L"label1"; this->label1->Size = System::Drawing::Size(225, 13); this->label1->TabIndex = 0; this->label1->Text = L"Bitte geben sie einen Namen für die Kartei ein:"; this->label1->TextAlign = System::Drawing::ContentAlignment::MiddleCenter; // // textBox1 // this->textBox1->Location = System::Drawing::Point(83, 42); this->textBox1->Name = L"textBox1"; this->textBox1->Size = System::Drawing::Size(221, 20); this->textBox1->TabIndex = 1; // // button1 // this->button1->Location = System::Drawing::Point(219, 114); this->button1->Name = L"button1"; this->button1->Size = System::Drawing::Size(72, 22); this->button1->TabIndex = 2; this->button1->Text = L"OK"; this->button1->UseVisualStyleBackColor = true; this->button1->Click += gcnew System::EventHandler(this, &Form2::button1_Click); // // button2 // this->button2->Location = System::Drawing::Point(311, 114); this->button2->Name = L"button2"; this->button2->Size = System::Drawing::Size(77, 21); this->button2->TabIndex = 3; this->button2->Text = L"Cancel"; this->button2->UseVisualStyleBackColor = true; this->button2->Click += gcnew System::EventHandler(this, &Form2::button2_Click); // // Form2 // this->AcceptButton = this->button1; this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(407, 153); this->Controls->Add(this->button2); this->Controls->Add(this->button1); this->Controls->Add(this->textBox1); this->Controls->Add(this->label1); this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedDialog; this->Name = L"Form2"; this->Text = L"Kartei Hinzufügen"; this->ResumeLayout(false); this->PerformLayout(); } #pragma endregion public: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { String ^str = this->textBox1->Text; /* tabPage1 = (gcnew System::Windows::Forms::TabPage()); tabControl1->Controls->Add(tabPage1); tabPage1->Text = str; */ Close(); } public: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { Close(); } }; }
-
15.06.07 09:51 #2
- Registriert seit
- Jun 2007
- Beiträge
- 7
Kann mir denn da keiner helfen?
-
Hallo,
ich weiß nicht, ob ich dir helfen kann, viel Erfahrung habe ich auch nicht,
aber, da sich keine gemeldet hat, werde ich es versuchen.
1. Du erzeugst deine Form2 in einer Member-Funktion der Form1
Code :1 2 3
public: System::Void kateiHinzufügenToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { Form2 ^frm2 = gcnew Form2(); frm2->ShowDialog(this);
ich würde frm2 als Member-Variable anlegen, damit ist der Zugriff auf dessen Daten einfacher
2. Beim Klicken auf Form2.Button1 brauchst du das Objekt der Form1
mit GetParent() der Basis-Klasse solltest du es eigentlich bekommen.
Danach casten auf (Form1) und auf die Daten zugreifen
// Mit ShowDialog(this) setzt du das Parent-Fenster
3. Du bindest Form1.h in Form2.h und Form2.h in Form1.h ein, gibts da keine Probleme?
Mein Rat ohne Gewähr,
ich arbeite nur mit nicht verwalteten Klassen
Gruß
titanic
-
15.06.07 11:20 #4
- Registriert seit
- Jun 2007
- Beiträge
- 7
-
hallo,
tut mir leid keine Zeit,
aber hab herausgefunden, dass man über die Eigenschaft Owner der Form auf die Form, die bei SchowDlg(...pDlg) übergeben wurde auf das Objekt greifen kann
PS. GetParent() gibts bei Form nicht, Entschuldigung, ist nur bei MFC
Vielleicht hilfts dir ja erstmal weiter. Ich schau mal nächste Woche wieder rein.
nur kurz:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
// Member Form1 private: System::Void button1_Click(System::Object * sender, System::EventArgs * e) { pForm2 = new Form2(); pForm2->ShowDialog(this); } //Member von Form2 private: System::Void button1_Click(System::Object * sender, System::EventArgs * e) { Form* f = this->Owner; /* CForm1-Objekt*/ }Geändert von titanic (15.06.07 um 14:03 Uhr) Grund: korrektur
-
15.06.07 16:43 #6
- Registriert seit
- Jun 2007
- Beiträge
- 7
okay danke erstmal.
Ich schau mir deinen Tipp mal an und warte biste wieder da bist
.
-
Ich habe eigentlich genau das selbe Problem. Hat sich noch etwas Neues ergeben?
Den so wie es hier geschrieben steht, funktioniert es nicht.
-
Hallo,
bin wieder da. Hier ein kleines funktionierendes Beispiel. Dazu
muß ich allerdings sagen, das ist mein erstes .net Projekt
Gruß titanic
-
Ja das ist ja auch C#.
Ich habs jetzt anders gelöst.Zwar total bekloppt aber es funktioniert.
Ich hab einfach den Text der Textbox in ein String eingelesen Und dann lasse ich Form2 via Close(); schliessen.Dann Springt Der focus automatisch wieder zurück in den Eventhandler von Form1 und ich kann weiter arbeiten.Dadurch wird alles RICHTIG umständlich.
Nur ich hab fast in ALLE Foren geschrieben die es gibt und keiner antwortet auf die Frage konkret oder gibt Beispiele.Da hab ichs halt so gelöst.
-
lol da haben wir gerade Paralell den Beitrag geschrieben.
-
@Titanic Ich werd es heute Mittag mal ausprobieren
-
Titanic du hast eine sehr alte Version benutzt von Visual Studio.So läuft es nämlich nich und er will das immer umkonvertieren.Ich versuch mal ob ich das hinbekomme.
-
So ich hab das ganze mal für Visual Studio 8 c++ übersetzt.
Vielen Dank Titanic jetzt weiss ich endlich wie es geht.
Hier das komplette Programm umgeschrieben (inkl. exe)
-
04.07.07 18:27 #14BNightSpeeder Tutorials.de Gastzugang
Hallo,
ich habe ein Problem und zwar hab ich in die Form2.cpp die Form1.h eingebunden wie im Beispiel doch nun hagelt es Fehlermeldungen das dies und das nicht definiert ist, muss ich das in der zweiten Form auch alles definieren oder wie mach ich das am besten?
-
Hi
Dann schreib doch mal die erste Fehlermeldung.Was sagt er denn? Und was benutzt du c# oder c++?
Ähnliche Themen
-
Form1 soll Form2 Öffnen und sich selbst dann Schließen aber Form2 soll offen bleiben!
Von beyoNd im Forum .NET Windows FormsAntworten: 13Letzter Beitrag: 05.10.11, 12:50 -
[C#] Form2 verwendet Variable von Form1
Von Tigermoon im Forum .NET Windows FormsAntworten: 10Letzter Beitrag: 24.02.08, 23:15 -
Form2 aus Form1 fernsteuern
Von mark1mark im Forum .NET Windows FormsAntworten: 3Letzter Beitrag: 28.01.08, 08:52 -
var. übergeben form1.frm zu form2.frm
Von MLelite im Forum Visual Basic 6.0Antworten: 11Letzter Beitrag: 13.07.05, 12:25 -
Variablen von Form1 in Form2
Von raenk im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 15.09.04, 17:14





Zitieren
Login






