eingabefeld auf zahlen und komma und tausendertrennzeichen beschränken



  • hallo, ich habe mir eine kleine anwendung gebastelt, die
    mittels

    [c#]
    string.format("{0:c}", decValue);
    [/c#]

    einem Eingabefeld zuweist - was auch wunderbar funktioniert.

    nun möchte ich beim speichern diese Werte aus der Textbox auslesen und wieder in nach decimal konvertieren.

    mit
    [c#]
    Decimal dec = Convert.ToDecimal(textBoxCurr.Text);
    [/c#]

    bekomme ich folgende Fehlermeldung:
    Eine nicht behandelte Ausnahme des Typs 'System.FormatException' ist in mscorlib.dll aufgetreten.

    Zusätzliche Informationen: Die Eingabezeichenfolge hat das falsche Format.

    formatiere ich das Ding mit "{0:n}" funktioniert alles wunderbar.
    kann mir jemand sagen wie ich das lösen kann ?

    Noch eine Frage:
    wie kann ich der textbox "beibringen", dass nur zahlenwerte erlaubt sind ?
    (natürlich auch komma, tausendertrennzeichen backspace, cursor - aber keine sondertasten und buchstaben)

    Danke !



  • Nur Zahlen, Backspace, Komma und Punkt zulassen.

    private void textBox_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    	if ("1234567890\b,.".IndexOf(e.KeyChar.ToString()) < 0)
    	{ 
    		e.Handled = true;
    	}
    }
    


  • Hey danke !



  • über die zwischenablage kann man trotzdem was einfügen oder? 😕


Anmelden zum Antworten