2012-04-23 10 views
4

数字(数字)以外のアルファベットや特殊文字を使用したくないアプリを作成しています。ユーザーの数字のみを入力することができます...ユーザーはアルファベットまたは特殊文字を入力した場合、それはエラーメッセージが表示されます...私は「ヌルパート」のための解決策を見つけたすなわちTextBlockでWindows Phone 7の数字のみを受け付ける

if (uservalue == "") 
    textblock.text = "Sorry! enter digit please" 
else 
    textblock.text=y.toString(); 

をユーザーの場合テキストボックスに数字を入力せずに「クリックしてください」ボタンを押すだけで、このメッセージ「Sorry!Enter digit please」がテキストブロックに表示されます。アルファベットや特殊文字の問題を解決するにはどうすればいいですか?

int digit; 
if (!int.TryParse(uservalue, out digit)) 
{ 
    textblock.text = "Sorry! enter digit please"; 
} 
else 
{ 
    textblock.text = digit.toString(); 
} 

これは、ユーザーが有効な32ビット整数を入力するようになっていることを前提としています

+2

タイトルを編集する必要があります。意味のあるタイトルがあれば、より多くの人々があなたの質問を読んで答えます。 – Skalli

答えて

2

あなたがTryParseメソッドを使用することができます。あなたは数字だけを表示するために、携帯電話のキーボードを変更することができます

if (!Regex.IsMatch(uservalue, @"\d+")) 
{ 
    textblock.text = "Sorry! enter digit please"; 
} 
else 
{ 
    textblock.text = uservalue; 
} 
11

:桁の非常に大きな金額を入力することができ、どこに大きな値を処理する必要がある場合は、入力を検証するために、次の正規表現\d+を使用することができます、あなたのテキストボックスに、以下を追加して:「」

<TextBox .... InputScope="Digits" ....> 

これはまだ追加されますキーを押します。あなたがテキストボックスにKeyUpイベントを追加し、次の操作を行い、それを入力してからユーザーを防ぐために:

private void KeyUp(object sender, System.Windows.Input.KeyEventArgs e) 
{ 
    TextBox txt = (TextBox)sender; 
    if (txt.Text.Contains('.')) 
    { 
     txt.Text = txt.Text.Replace(".", ""); 
     txt.SelectionStart = txt.Text.Length; 
    } 
} 
+0

KeyUpイベントを改善することができます: 'e.KeyCode'が"。もしそうなら、 'e.Handled = true'としてください –

+0

提案ありがとうございましたPedro;) – Dante

+0

そして、ユーザーの地域が変わったときはどうなりますか?されません '。 '、'になる? Char.IsDigitのようなものは、依然として関係なく使用する必要があります。 –

0

あなたは、正規表現に

1

を使用することができますあなたはTextBoxを使用して、XAMLでTextBox.InputScope=Numberを設定することができます。 InputScope

1

間違いなくこれを試して整数variables.textboxは数字のみを許可するよう、それが宣言さhとkは動作しますすべてのinputscopeオプションのリストがある

private void txt3_KeyPress(object sender, KeyPressEventArgs e) 
    { 

     for (int h = 58; h <= 127; h++) 
     { 
      if (e.KeyChar == h)    //58 to 127 is alphabets tat will be   blocked 
      { 
       e.Handled = true; 
      } 

     } 

     for(int k=32;k<=47;k++) 
     { 
      if (e.KeyChar == k)    //32 to 47 are special characters tat will 
      {         be blocked 
       e.Handled = true; 
      } 

     } 



    } 
関連する問題