TextBox -> Label



  • Ahh. Danke. Jetzt funzt es. 🙂

    Gibt es eine Möglichkeit eine MessageBox einblenden zu lassen, falls etwas anderes als zahlen in die textbox eingegeben wird?



  • ja, ist auch nicht schwer

    Int32 wert;
    if(Int32::TryParse(textBox1->Text,IsNr)==true)
        label1->Text = wert.ToString();
    else
        MessageBox::Show("Keine Zahl!", "Fehler");
    


  • Danke.

    Edit: Bei ausführen des Programmes kommt beim Eingeben von einem Buchstaben und klicken des Buttons das hier:

    Eine nicht behandelte Ausnahme des Typs "System.FormatException" ist in mscorlib.dll aufgetreten.
    
    Zusätzliche Informationen: Die Eingabezeichenfolge hat das falsche Format.
    

    Im Editor:

    error C2065: 'IsNr': nichtdeklarierter Bezeichner
    


  • Sorry... du musst das IsNr durch wert ersetzen in der Argumenten liste,
    also statt:

    if(Int32::TryParse(textBox1->Text,IsNr)==true)
    

    musst du:

    if(Int32::TryParse(textBox1->Text,wert)==true)
    

    schreiben



  • label3->Text = wert.ToString();
    

    Letzt Frage: Kann man da eigentlich eine Rechnung rein machen?



  • Nein.



  • Ich wollte das so haben, dass man in die textbox eine zahl eingibt und wenn man auf einen button klicks soll in einen Label die Eingegebene Zahl durch 5 geteilt werden.



  • lennard95 schrieb:

    Ich wollte das so haben, dass man in die textbox eine zahl eingibt und wenn man auf einen button klicks soll in einen Label die Eingegebene Zahl durch 5 geteilt werden.

    System::Decimal zahl;
        if (System::Decimal::TryParse(textBox1->Text, zahl))
        {
          label1->Text = (zahl/5).ToString();
        }
    


  • kann 'bool System::Decimal::TryParse(System::String ^,System::Decimal %)' sein
    


  • lennard95 schrieb:

    kann 'bool System::Decimal::TryParse(System::String ^,System::Decimal %)' sein
    

    Ist das eine Frage?



  • Nein.

    Sagt der Kompiler:

    c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll: kann 'bool System::Decimal::TryParse(System::String ^,System::Decimal %)' sein bei Anpassung der Argumentliste '(System::String ^, int)'

    Der Kompiler sagt das ist nen Error.



  • gib mal deinen Codeschnipsel...



  • Du solltest auch mein Beispiel *genau* so abschreiben wie ich es hatte...



  • Ich konvertriere int (oder anderes Zahlenvariablen) immer gerne über den überladenen + Operator von String. Dazu benutze ich einen leeren String am Anfang.

    Das schaut dann so aus:

    label3->Text = "" + wert;
    

    Un so kann man in der selben Zeile rechnen:

    label3->Text = "" + ( wert + 1 );
    

    Dabei ist aber Vorsicht geboten! Sollte man z.B.:

    label3->Text = "" + wert + 1;
    

    ...eingeben, dann wandelt er wert und 1 jeweils einzeln in String um und hängt sie aneinander.



  • private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) 
    		 {
    		 Int32 wert;
    		 System::Decimal zahl; 
    		 if (System::Decimal::TryParse(textBox1->Text, wert))
    		 label3->Text = (wert/5).ToString(); 
    		 else
    		 MessageBox::Show("Ungültige Eingabe!", "Fehler");
    		 }
    


  • Dannn schaut Dir mal mein Beispiel und Dein abgeschriebenes nochmals *genau* an... vielleicht findest Du ja den Fehler...

    Das ist wie bei einem Suchbild....



  • Danke.

    Int musste weg.

    label3->Text = (wert/5).ToString();
    

    Kann man da auch einen Text reinschreiben?

    Habs schon ausprobier.

    label3->Text = ("Test" wert/5 "Test").ToString();
    


  • label3->Text = "Test" + (wert/5).ToString() + "Test";
    


  • Danke.

    label3->Text = (wert).ToString() + "Habbotaler = " (wert/5).ToString() + " Euro";
    

    Wie kann man das hinbekomme.

    Sorry das ich so viele Fragen stelle. 🙄

    Edit: hab + vergessen.

    Edit2:

    Iwie will das hier nicht:

    System::Decimal wert;
    		 if(toolStripStatusLabel1->Text == Taler -> Euro)
    		 {
    		 if (System::Decimal::TryParse(textBox1->Text, wert))
    		 {
    		 label3->Text = (wert).ToString() + " Habbotaler = " + (wert/5).ToString() + " Euro";
    		 }
    		 else
    		 {
    		 MessageBox::Show("Ungültige Eingabe!", "Fehler");
    		 }
    		 }
    		 if(toolStripStatusLabel1->Text == Euro -> Taler)
    		 {
             		 if (System::Decimal::TryParse(textBox1->Text, wert))
    		 {
    		 label3->Text = (wert).ToString() + " Euro = " + (wert/5).ToString() + " Habbotaler";
    		 }
    		 else
    		 {
    		 MessageBox::Show("Ungültige Eingabe!", "Fehler");
    		 }
    		 }
    

    Edit3: Habs, > darf nicht da hin. Und es mus in "".



  • Du hast keinen String mit Taler->Euro. Wenn schon überhaupt so:

    System::Decimal wert;
             if(toolStripStatusLabel1->Text == "Taler -> Euro")
             {
             if (System::Decimal::TryParse(textBox1->Text, wert))
             {
             label3->Text = (wert).ToString() + " Habbotaler = " + (wert/5).ToString() + " Euro";
             }
             else
             {
             MessageBox::Show("Ungültige Eingabe!", "Fehler");
             }
             }
             if(toolStripStatusLabel1->Text == "Euro -> Taler")
             {
                      if (System::Decimal::TryParse(textBox1->Text, wert))
             {
             label3->Text = (wert).ToString() + " Euro = " + (wert/5).ToString() + " Habbotaler";
             }
             else
             {
             MessageBox::Show("Ungültige Eingabe!", "Fehler");
             }
             }
    

    Hab's jetzt nicht ausprobiert, aber das waren die einzigen Fehler, die ich auf die Schnelle entdecken konnte.

    EDIT: Sorry, HAB' DEIN EDIT NICHT GELESEN!


Anmelden zum Antworten