2016-06-14 7 views
2

テキストボックスで数値だけを受け入れる適切な方法があるかどうかを知りたいと思います。例えばTextBoxで数値のみを受け入れる方法を教えてください

は、私はそれが「ABCD1234」とそれを埋めるからユーザーを「停止」にしたいとのみ、事前に彼は「1234」

感謝でいっぱいにしましょう!

+0

を受け入れますか?そうでない場合は、この情報を追加してください。 – MrApnea

+0

はいテキストボックス、今更新! –

+4

[数字のみを受け入れるテキストボックスを作成するにはどうすればいいですか?](http://stackoverflow.com/questions/463299/how-do-i-make-a-textbox-that-only-accepts-numbers) –

答えて

7

私は以下のコードを試してみて、うまくいきました。 textboxを入力すると、の番号はとなります。

private void txtbox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) 
    { 
     e.Handled = true; 
    } 
} 

また、あなたはこの単純なコードを試すことができます。この

e.Handled = !(char.IsDigit(e.KeyChar)); 
+1

ユーザーは非数字でそれを貼り付けることができますか? – ABuckau

+0

いいえ、ユーザーがアルヒベティクスを入力しようとしても、許可されません。 –

+0

メインメソッドのテキストボックスでメソッドtxtbox1_KeyPressを "呼び出す"方法はありますか? –

0

あなたは、次のコード行を使用して入力を評価することができます。

if (txtNumericBox.Text.All(char.IsDigit)) 
    // Proceed 
else 
    // Show error 

あなたはゲッターとセッターを持つ文字列プロパティとしてこれを定義するならば、あなたは次のように使用することができます。

private string _MyNemericStringr; 

public string MyNemericString 
{ 
    get { return _MyNemericStringr; } 
    set { 
     if (value.All(char.IsDigit)) 
      _MyNemericStringr = value; 
     else 
      _MyNemericStringr = "0"; 
    } 
} 

2番目の例では、プロパティに数値以外の値を代入すると、"0"という値が返されます。それ以外の場合は通常どおり処理されます。

0

を試すことができます。あなたは、その後のTextBoxについて話しているあなたは、文字列が数値以外の文字を入力するからユーザーを停止したいと言うとき

private void keypressbarcode(object sender, KeyPressEventArgs e) 
{ 
     e.Handled = !(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back); 
} 

それだけ数値値とBackspaceキー

関連する問題