Laden...

Währungsfomat TextBox bzw Zeichen unterbinden?

Letzter Beitrag vor 18 Jahren 7 Posts 2.380 Views
Währungsfomat TextBox bzw Zeichen unterbinden?

Hallo, ich habe die Suche bereits benutzt u nichts passendes gefunden. Google ebenfalls erfolglos.

Ich habe eine TextBox in der ich einen Betrag eingeben will. Über


private void txtB_AuktionStartpreis_KeyPress(object sender, KeyPressEventArgs e)
    {
      if (!('0' <= e.KeyChar && e.KeyChar <= '9' || e.KeyChar == ',')) e.Handled = true;
    }

habe ich die Eingabe nur auf Zahlen u "Komma" begrenzt. Funktioniert alles wunderbar, aber was ist wenn der User zB

10,00,22 durch ein Versehen eingibt. Wie kann ich unterbinden, dass man 2 Kommas eingeben kann. Hat jemand einen Ansatz oder einen Snipet? Wäre echt klasse. big thx

wenn der Benutzer was falsches eingibt, bekommst beim parsen halt Exception.
Und dann kannste den benutzer ja nochma neu was einlesen lassen.

also:


try
{
  double.Parse(textBox.Text)
}
catch(FormatException)
{
}

alternative könntest du auch TryParse benutzen...

Oder noch alternativer nimmst du ein NumericUpDown-Control und bist alle Sorgen diesbezüglich los...

Moin

vielleicht hilft dir ja die maskedTextBox weiter

@ Stu42
In welches Ereignis deiner Meinung nach?

@Borg

keine schlechte Idee. Gibt es auch die Möglichkeit die beiden Pfeile zu entfernen? Sieht ein wenig blöd aus.

@ingo

Bei MaskedTextBox ist es blöd, dass ich eine bestimmte länge haben muss

zB ######,##

also man muss alles ausfüllen. ist leider nicht so das Wahre.

Wer die NET-Doku durchlesen will, kann auch selbst Antworten auf seine Fragen finden:

Original von ZeroQool
@Borg
keine schlechte Idee. Gibt es auch die Möglichkeit die beiden Pfeile zu entfernen? Sieht ein wenig blöd aus.

@ingo
Bei MaskedTextBox ist es blöd, dass ich eine bestimmte länge haben muss

UpDownBase.AutoScrollMargin-Eigenschaft
... ist nicht für die direkte Verwendung in Code bestimmt.
Ruft die Größe des AutoBildlaufrandes ab oder legt diese fest. DropDownStyle o.ä. gibt es offensichtlich wirklich nicht.

Aber ist dieser Hinweis an den Nutzer nicht hilfreich, dass er mit den Cursortasten Werte verändern kann?!

MaskedTextBox.Mask-Eigenschaft
0 = Ziffer, erforderlich
9 = Ziffer oder Leerzeichen, optional.

= Ziffer oder Leerzeichen, optional.

Was willst Du mehr?

Jürgen

naja aber die maskedTextBox ist in der hinsicht nicht optimal, weil man dort nur eine begrenzte anzahl von zahlen definieren kann.
ich hab die maskedTextBox auch noch nie benutzt aber auf den ersten blick sieht es jedenfalls so aus.