tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
20
ZUGRIFFE
4969
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    theplake3000 theplake3000 ist offline Rookie
    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();
                    
                     }
        };
    }
     

  2. #2
    theplake3000 theplake3000 ist offline Rookie
    Registriert seit
    Jun 2007
    Beiträge
    7
    Kann mir denn da keiner helfen?
     

  3. #3
    titanic titanic ist offline Mitglied Silber
    Registriert seit
    May 2006
    Beiträge
    60
    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
     

  4. #4
    theplake3000 theplake3000 ist offline Rookie
    Registriert seit
    Jun 2007
    Beiträge
    7
    Zitat Zitat von titanic Beitrag anzeigen
    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
    zu3. nee da gibt es keine Probleme.zumindest meckert er nicht.
    Erstmal Danke.
    Aber könntest du mir das als syntax geben?
    Oder direkt so schreiben das es bei mir passt?
     

  5. #5
    titanic titanic ist offline Mitglied Silber
    Registriert seit
    May 2006
    Beiträge
    60
    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
     

  6. #6
    theplake3000 theplake3000 ist offline Rookie
    Registriert seit
    Jun 2007
    Beiträge
    7
    okay danke erstmal.

    Ich schau mir deinen Tipp mal an und warte biste wieder da bist .
     

  7. #7
    pr0phetus pr0phetus ist offline Grünschnabel
    Registriert seit
    May 2007
    Beiträge
    1
    Ich habe eigentlich genau das selbe Problem. Hat sich noch etwas Neues ergeben?
    Den so wie es hier geschrieben steht, funktioniert es nicht.
     

  8. #8
    titanic titanic ist offline Mitglied Silber
    Registriert seit
    May 2006
    Beiträge
    60
    Hallo,

    bin wieder da. Hier ein kleines funktionierendes Beispiel. Dazu
    muß ich allerdings sagen, das ist mein erstes .net Projekt

    Gruß titanic
    Angehängte Dateien Angehängte Dateien
     

  9. #9
    theplake theplake ist offline Mitglied Gold
    Registriert seit
    Oct 2005
    Beiträge
    106
    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.
     

  10. #10
    theplake theplake ist offline Mitglied Gold
    Registriert seit
    Oct 2005
    Beiträge
    106
    lol da haben wir gerade Paralell den Beitrag geschrieben.
     

  11. #11
    theplake theplake ist offline Mitglied Gold
    Registriert seit
    Oct 2005
    Beiträge
    106
    @Titanic Ich werd es heute Mittag mal ausprobieren
     

  12. #12
    theplake theplake ist offline Mitglied Gold
    Registriert seit
    Oct 2005
    Beiträge
    106
    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.
     

  13. #13
    theplake theplake ist offline Mitglied Gold
    Registriert seit
    Oct 2005
    Beiträge
    106
    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)
    Angehängte Dateien Angehängte Dateien
     

  14. #14
    BNightSpeeder 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?
     

  15. #15
    theplake theplake ist offline Mitglied Gold
    Registriert seit
    Oct 2005
    Beiträge
    106
    Hi
    Dann schreib doch mal die erste Fehlermeldung.Was sagt er denn? Und was benutzt du c# oder c++?
     

Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 05.10.11, 12:50
  2. [C#] Form2 verwendet Variable von Form1
    Von Tigermoon im Forum .NET Windows Forms
    Antworten: 10
    Letzter Beitrag: 24.02.08, 23:15
  3. Form2 aus Form1 fernsteuern
    Von mark1mark im Forum .NET Windows Forms
    Antworten: 3
    Letzter Beitrag: 28.01.08, 08:52
  4. var. übergeben form1.frm zu form2.frm
    Von MLelite im Forum Visual Basic 6.0
    Antworten: 11
    Letzter Beitrag: 13.07.05, 12:25
  5. Variablen von Form1 in Form2
    Von raenk im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 15.09.04, 17:14