textBox auf leer testen



  • Hallo,

    ich versuch schon seit Stunden einfach nur herauszubekommen, wie man abfrägt, ob nichts in der TextBox steht.

    Visual Studio C++ Express Edition
    Form mit textBox

    Danke



  • textBox.Text.Length == 0?



  • Es ist die Frage, was man unter "nichts" versteht...
    Besser wäre vielleicht

    String::IsNullOrWhitespace(txtBox1->Text)
    

    oder aber

    String::IsNullOrEmpty(txtBox1->Text)
    

    (finde ich persönlich besser als "->Length", da ich auch den Fall von "Text=null" abgedeckt habe... würde sonst zu einer Exception führen...



  • Wie Jochen schon sagte, ist hier die Definition von "leer" wichtig.
    Nur ""?
    null oder ""?
    null oder "" oder auch " "?

    Meistens nutze ich String::IsNullOrWhitespace, aber das gibt's erst ab .NET 4. Sonst ist für mich String::IsNullOrEmpty, meistens mit String::Trim kombiniert, eine gute Lösung. Wobei man auch sagen muss, dass die Text-Property nie null zurückliefert, sondern immer einen echten Stringwert. Insofern ist textBox->Text->Trim().Length != 0 zwar prinzipiell okay, aber es ist mehr Schreibaufwand und liest sich unschön.



  • Hallo,

    vielen Dank. Hat mir sehr geholfen. Ich machs jetzt so:

    String ^myString = textBox2->Text;
    if (String::IsNullOrEmpty(myString))
    {
    MessageBox::Show("No Password entered!");
    }
    else
    {

    }

    Noch eine Frage.
    Wenn jemand was eingibt und er im Textfeld auf Enter drückt, soll ein Button "gedrückt" werden. Wie geht das?

    Vielen, vielen Dank



  • Mach eine eigene Funktion, welche dann von orginal Button aufgerufen wird, aber auch von anderswo aufgerufen werden kann.



  • Oder einfach bei der Form die Eigenschaft 'AcceptButton' setzen.



  • Cool, Danke


Log in to reply