2016-05-25 5 views
0

私は要件があります。TextBox UWPで負の浮動小数点を受け入れる方法は?

1))正および負の浮動番号

2を受け入れ緯度、経度の座標を表す数値の値をそのまま使用。式の先頭に働いていない - の答えから

はすでに私が ^\が追加として負の数を受け入れる方法を知りたいと思った正の浮動小数点数
private void floatTextBox_TextChanging(TextBox sender, TextBoxTextChangingEventArgs args) 
{ 
    try 
    { 
     if (!Regex.IsMatch(sender.Text, "^\\d*\\.?\\d*$") && sender.Text != "") 
     { 
      int pos = sender.SelectionStart - 1; 
      sender.Text = sender.Text.Remove(pos, 1); 
      sender.SelectionStart = pos; 
     } 
    } 
    catch 
    { 
    } 
} 

を受け入れる方法を得ました。 また、私はここで他の答えを試しましたが、座標でさえもうまくいきませんでした。

+0

なぜtextchangedイベントの値をチェックしていますか?あなたは、テキストボックスの完全な値を取った後にそれを行うことができます。 –

+0

まず、ユーザーが任意のデータを入力して、そのデータが正しいかどうかを判断させますか?しかし、最初に間違ったデータをユーザーに入力させない方が良いと思った。 – AbsoluteSith

答えて

1

はこの1

@"^[-]?[0-9]*(?:\.[0-9]*)?$" 
+0

このパターンは空の文字列と一致する。 – Gess

+0

@AbsoluteSithごめんなさいあなたのコメントが明確でない –

0

の代わりに正規表現を試してみてください、私はあなたの場合には、これらの線に沿って何かを使用したい:

float f; 
if (float.TryParse(sender.Text, out f)) 
{ 
    // Do stuff 
} 

これはあなたの正と負の浮動小数点数を取得します。

+0

スタンドアロンネガティブシンボルがこの条件を満たさないため、これはおそらくTextChangingイベントハンドラでは機能しません。 – AbsoluteSith

+0

いいえ、スタンドアロンのネガティブシンボルは条件を満たさないでしょう。それはなぜでしょうか? – Gess

+0

だから、浮動小数点数として解析しようとしている間、TextChangingイベントの負の数を評価すると仮定しますか? – AbsoluteSith

関連する問題