禁用TextBox内的负值

时间:2011-12-14 04:58:11

标签: c# winforms textbox

我在Windows窗体上工作..我需要我的TextBox不接受负值..我怎么能这样做.. 是否有任何财产可以做同样的事情......

3 个答案:

答案 0 :(得分:3)

您需要编写文本框的按键事件,如:

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

您还可以使用数字更新控件来防止negetive值。

更新:

参考:Sai Kalyan 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;     
        }     
    }  
}

答案 1 :(得分:1)

是的,您可以在textbox的textchanged事件中编写以下代码部分

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;
}
}

答案 2 :(得分:0)

仅使用min和pattern将不允许输入负值

输入类型为

min =“ 0”模式=“ ^ [0-9] + $”