2012-03-12 23 views
0

このコードを使用して入力1小数点のみを許可しています。それは正常に動作します。しかし、小数点以下2桁しか入力できないようにするにはどうすればいいですか?入力を許可する小数点以下2桁(C#+ WindowsPhone)

C#

private void txtPrecio_KeyDown(object sender, KeyEventArgs e) 
    { 
     TextBox txt1 = (TextBox)sender; 

     if (txt1.Text.Contains(".") && e.PlatformKeyCode == 190) 
     { 
      e.Handled = true; 
     }   
    } 

答えて

1

最後の文字が数値で、最後から2番目の文字が数値で、その前の文字がドット/ピリオドであることを確認してください。

それとも、正規表現をUEしたい場合*、何か

if (Regex.IsMatch(".[0-9]{2}$", txt1.Text) 
{ 
    e.Handled = true; 
} 

は、* - この正規表現は、メモリから行われていたが、それは見るために(することを目的と)見ているような場合は小数点以下の桁数endswith、その後2テキスト数字です。

+0

感謝を。私はあなたの例に従って、私はこの正規表現を作成し、うまく動作します:if(Regex.IsMatch(txt1.Text、 "^ \\ d * \\。\\ d {2} $"))e.Handled = true; – aco

2

おそらくthisまたはいくつかの他のSilverlightベースのマスクされた編集は、あなたがよりクリーンな方法であなたの問題を解決するのに役立つだろうか?

これが役に立ちます。

1

理由だけではなく、結果をフォーマットしない:

double e = double.Parse(text); 
string nText = string.Format("{0:0.##}", e); 
e = double.Parse(nText); 
関連する問題