2011-12-14 8 views
0

内の負の値を無効にするには..私は、私はこれを行うことができます..How負の値を受け入れないように私のTextBoxが必要です。.. は同じことを行うためにそこに任意のプロパティAvailiableをされています...私はWindowsフォームの作業mはTextBoxの

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

次のことができます。

答えて

3

テキストボックスのtextchangedイベントに以下のコードの一部を書くのですかすることができますまたnegetive値を防ぐために、ユーザの数値アップダウンコントロール。

UPDATE:

参考:サイカルヤンAkshinthala

私のコードは、コピー/ペーストのケースを処理しません。ユーザーは、コピー/ペーストによって負の値を入力することができます。だから私は、Sai Kalyan Akshinthalaの答えは長さ> = 2の小さな変化を除いてそのケースに当てはまると思います。

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    if(textBox1.Text.Length >= 2)  
    {  
     int acceptednumber = Convert.ToInt32(textBox1.Text);  
     if(acceptednumber < 0)  
     {  
      textBox1.Text = "";  
      MessageBox.Show("-ve values are not allowed");  
     }  
     else  
     {  
      textBox1.Text = textBox1.Text;  
     }  
    } 
} 
+0

あなたのコードのために働いていません。 –

1

はい、あなたはあなたが好きなテキストボックスのキープレスイベントを記述する必要が

if(textBox1.Text.Length >= 2) 
{ 
int acceptednumber = Convert.ToInt32(textBox1.Text); 
if(acceptednumber < 0) 
{ 
textBox1.Text = ""; 
MessageBox.Show("-ve values are not allowed"); 
} 
else 
{ 
textBox1.Text = textBox1.Text; 
} 
} 
+0

これは正しい方法です。キーの押下をインターセプトすると、彼らは/ペーストやドラッグをコピーする場合/テキストをドロップする助けにはなりません。 –

+0

あなたのコードは、ユーザーが-ve値をコピーして、テキストボックスに貼り付けると、動作しません-1、-2 .... –

関連する問題