Textfeld nach button_click wandern lassen



  • Hallo,

    ich habe ein Problem mit dem Erstellen der Methode.
    Wie im Titel zu lesen ist, soll ich ein Label nach dem Drücken eines Buttons in der Form wandern lassen.
    Bei meinen Lösungen wandert das Label jedoch immer nur genau 1x, danach passiert beim Klicken des Buttons nichts mehr.
    Hier mal meine Ansätze:

    private: System::Void buttonRunter_Click(System::Object^  sender, System::EventArgs^  e)
    			 {
    				 Int32 i;
    				 label1 -> Location = System::Drawing::Point(12, i);
    				 i = i + 10;
    			 }
    
    private: System::Void buttonRunter_Click(System::Object^  sender, System::EventArgs^  e)
    			 {
    				 label1 -> Top = Top + 10;
    			 }
    

    Worin liegt mein Denkfehler, ich sage der Methode ja, dass sie den Wert (oben die Y-Koordinate über eine Hilfsvariable, unten die direkte Position) mit jedem Klick ändern soll. Dies passiert nur leider nicht.

    Ich danke euch jetzt schon für die Denkanstöße um bei der Lösung weiter zu kommen.

    Grüße,
    Son_of_onE



  • Hallo,

    "label->Top" und "Top" sind zwei unterschiedliche Werte (der letzte ist die Form-Position). Richtig wäre also

    label1->Top = label1->Top + 10;
    

    Und bei deiner ersten Variante verwendest du eine uninitialisierte (d.h. zufällige) Variable.

    P.S: Was heißt "soll wandern lassen"? Gehörst du zu einem Kurs, der wiedermal C++/CLI mit WinForms verwendet und das als "C++" verkauft wird?
    Besser für WinForms ist "C#" als Sprache zu benutzen, s.a. Windows Forms und Visual C++ MACHT KEINEN SINN!



  • Danke für die schnelle Hilfe.

    Manchmal sieht man den Wald vor lauter Code nicht.

    Natürlich hätte es beim ersten Versuch auch so richtig aussehen müssen:

    Int32 i = 1;
    

    Wie gesagt, danke für den Tipp, nun habe ich meinen Fehler gesehen und merke es mir fürs nächste Mal.


Log in to reply