Windows Forms: TextBox mit Enter verlassen



  • @Mau-Arn sagte in Windows Forms: TextBox mit Enter verlassen:

    @Th69
    Ich bin Schüler eines technischen Gymnasiums. Dort programmieren wir C++, und haben jetzt mit Winforms mit C++ angefangen. Inwiefern das Sinn macht weiß ich nicht.

    Dann sage deinem Lehrer, daß das kompletter Unsinn ist (und zeige ihm obigen Artikel)!
    Das aktuelle Visual Studio 2019 bietet doch auch keine WinForms-Vorlagen für C++ mehr an. Welche IDE verwendet ihr denn?

    Und daher werde ich dir auch nicht bei der Aufgabe helfen...

    PS: Code hier im Forum solltest du mit Code-Tags versehen ("</>"-Button neben der ComboBox für die Sprachauswahl).
    Kannst auch noch nachträglich deinen Beitrag editieren (mittels des Drei-Punkte-Menüs: Bearbeiten).



  • @Th69
    Wir verwenden VS 2013. Danke für deinen Nutzvollen Beitrag!😆



  • OK, das ist tatsächlich C++/CLI mit WinForms 🤦🏻♂
    Na gut, wenigstens ist jetzt klar dass es wirklich und wahrhaftig um C++/CLI mit WinForms geht.

    @Mau-Arn
    Du musst dich auf den KeyPress Event der TextBox draufhängen. Das sollte im Prinzip gleich gehen wie auch der Anzahl_Spieler_OK_Button_Click Handler verbunden wird, bloss dass der "event args" Parameter vom Typ System::Windows::Forms::KeyPressEventArgs ist.
    Da drin prüfst du dann ob es die Entertaste war (e.KeyChar == Keys.Return), und wenn ja, machst du das selbe was auch gemacht wird wenn der OK Button gedrückt wurde.

    Sinnvollerweise solltest du dazu den Inhalt der Anzahl_Spieler_OK_Button_Click Funktion in eine Hilfsfunktion verlagern, die du dann sowohl aus Anzahl_Spieler_OK_Button_Click als auch aus dem neuen KeyPress Event-Handler aufrufen kannst. Sonst müsstest du das ja alles doppelt schreiben (und dann auch doppelt ändern wenn's mal was zu ändern gibt).



  • @hustbaer
    Ich habe jetzt folgendes eingefügt:

    private: System::Void Anzahl_Spieler_Box_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs  e) {
    
                                                                        if (e.KeyChar == Keys.Return){
    
                                                                                      Anzahl_Spieler();
    
                                                                        }
    
                               }
    

    Leider wird mir da "Keys.Return" als Fehler angezeigt. "Typname ist nicht zulässig".



  • Ich geb dir doch mal einen besseren Tipp: Form.AcceptButton



  • @Mau-Arn sagte in Windows Forms: TextBox mit Enter verlassen:

    Keys.Return

    Probier's mit Keys::Return.



  • @hustbaer
    Danke für den Tipp!
    Keys::Return funktioniert, jetzt wird jedoch das e in "e.KeyChar" als Fehler markiert: "ein auf eine bereichsbezogene Enumerarion angewendeter integrierter Binäroperator erfordert zwei Operanden desselben Typs".

    Sorry das ich gerade nicht so klar komme. Kenne mich mit dem ganzen WinForms noch nicht so gut aus.



  • Da fehlt ein ^ vor dem letzten Parameter e.
    Und dann muß es in C++/CLI e->KeyChar lauten.

    Du kennst dich leider weder mit C++(/CLI) noch mit WinForms aus und ich prophezeie, daß ihr auch nicht weit damit kommt.



  • @Th69
    Da kommt genau der gleiche Fehler...
    Trotzdem Danke für die Idee.



  • Jetzt funktionierts. Ich hatte einen kleinen Fehler drin. Danke für die Hilfe! 😁


Anmelden zum Antworten