Autor Beitrag
Rassi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: Mo 10.11.08 16:23 
Hallo.

Ich möchte eine Fließkommazahl in eine Textbox eingeben lassen.

hier möchte ich nur die Tasten 0 bis 9, das Komma und den Backspace zulassen.

Wie mache ich dass.

Ich habe es über das KeyPress-Event versucht. Hier habe ich die Tasten so gefiltert, dass ich bei ungültigen Zeichen in eine If-Anweisung komme. So und dann?
Hier würde ich gerne das eingegebene Zeichen löschen, aber wie?

Oder gibt es eine bessere Lösung um Fließkommazahlen einzugeben?


Gruß
Rasmus
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 10.11.08 16:42 
Hallo Rasmus,

user profile iconRassi hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe es über das KeyPress-Event versucht.

Passt schon. Je nach Prüfung der Tasten kämen auch KeyDown oder KeyUp in Frage.

user profile iconRassi hat folgendes geschrieben Zum zitierten Posting springen:
Hier habe ich die Tasten so gefiltert, dass ich bei ungültigen Zeichen in eine If-Anweisung komme. So und dann?
Hier würde ich gerne das eingegebene Zeichen löschen, aber wie?

KeyPressEventArgs bietet Handled = true. Außerdem kann KeyChar = #0 festgelegt werden.

user profile iconRassi hat folgendes geschrieben Zum zitierten Posting springen:
Oder gibt es eine bessere Lösung um Fließkommazahlen einzugeben?

MaskedTextBox oder NumericUpDown.

Jürgen


Zuletzt bearbeitet von JüTho am Mo 10.11.08 17:16, insgesamt 1-mal bearbeitet
Rassi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: Mo 10.11.08 17:12 
Hallo.

Danke für die Antwort. Es hat mit Handled = true geklappt.

Ich war schon nahe dran, habe aber Handled = false gesetzt, und dann kann es ja nicht klappen. Wer lesen kann, ist klar im Vorteil.

Da ich noch mit VS2003 arbeite geht die Zuweisung zu KeyChar noch nicht.

MaskedTextBox gibts in VS2003 auch noch nicht, und NumericUpDown ist meines Wissens nur für ganze Zahlen.

Aber der Tip hat mir weiter geholfen. Vielen Dank.

Gruß
Rasmus
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 10.11.08 17:16 
user profile iconRassi hat folgendes geschrieben Zum zitierten Posting springen:
Da ich noch mit VS2003 arbeite geht die Zuweisung zu KeyChar noch nicht.

MaskedTextBox gibts in VS2003 auch noch nicht,

Stimmt, aber das ist ein wichtiger Gesichtspunkt zum Wechseln.

user profile iconRassi hat folgendes geschrieben Zum zitierten Posting springen:
und NumericUpDown ist meines Wissens nur für ganze Zahlen.

Falsch, Du kannst DecimalPlaces benutzen. Aber es ist wegen der Up/Down-Funktionalität i.V.m. Increment nur begrenzt nützlich.

Jürgen