2012-04-01 18 views
1

Ich muss ein Textfeld in meiner Anwendung hinzufügen, die mit dem Wert 0.00 genau wie ein ATM angezeigt wird, wie Sie die Zahlen eingeben, dann behält es die zwei Dezimaltrennzeichen, bis mit dem Wert zufrieden ist zum Beispiel, um die Sequenz aus einem Wert von 1023.00 wäre zu Ende (wie Typ I)So erstellen Sie ein Textfeld mit Dezimalwert

0.01 
0.10 
1.02 
10.23 
102.30 
1023.00 

Ist das möglich in einer Windows Forms-Anwendung zu tun ?. Ich bin nur nicht sicher, wie es geht. Danke.

+1

mögliche Duplikate von [Winforms Format TextBox To Currency] (http://stackoverflow.com/questions/7258562/winforms-format-textbox-to-currency) – ChrisWue

Antwort

2

In dieser Art von Szenario würde ich keine Textbox verwenden, sondern eine Beschriftung oder eine schreibgeschützte Textbox. Um die Benutzereingabe zu erhalten, benutzen Sie einfach das key-press Ereignis auf Ihrem Formular (Sie müssen KeyPreview auch auf dem Formular aktivieren) - dann merken Sie sich einfach die gedrückten Tasten/Zahlen und geben das gewünschte Format aus - sollte ein ziemlich einfacher Algorithmus sein (Char.IsNumber, und String.Format könnte sie als nützlich):

private int _inputNumber = 0; 
    private void Form_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) 
    { 
     if (!Char.IsNumber(e.KeyChar)) return; 
     _inputNumber = 10*_inputNumber + Int32.Parse(e.KeyChar.ToString()); 
     ReformatOutput(); 
    } 

    private void ReformatOutput() 
    { 
     myOutput.Text = String.Format("{0:0.00}", (double)_inputNumber/100.0); 
    } 

Hinweis: Warum nicht eine Textbox verwenden - weil es interne Logik mit select/ersetzen/entfernen/Typ so kompliziert ist, dass die Fälle würden Sie müssen prüfen, sind nur zu viel anmutig zu handhaben - so anstatt zu versuchen, eine Kanone in eine Schlinge zu ändern, die Sie mit der Schleuder beginnen sollen.

+0

Vielen Dank, ich kann diese Funktionen in einem Benutzer verwenden Steuerung, die in der Form? – user710502

+0

Ja ich denke, das sollte auch funktionieren, aber die KeyPreview könnte ein Problem sein, wenn Sie nicht einen Fokus auf Ihrem Usercontrol bekommen - nur ein bisschen versuchen. – Carsten

+0

Ja, es funktioniert ... das einzige Problem, das ich jetzt habe, ist, dass ich irgendwo in Form klicken, wenn ich in diesem Bildschirm kommen für die Zahlen bevölkern beginnen ... – user710502

Verwandte Themen