验证文本框中的数字INTEGER IN窗体中的问题

时间:2014-03-14 09:16:56

标签: c# winforms

我在Windows窗体上有文本框,我想在此textbox中只插入数字。我使用以下c#代码

private void ChildAge_TextChanged(object sender, EventArgs e)
{
    int i;
    if (!int.TryParse(ChildAge.Text, out i))
    {
        MessageBox.Show("Plaese enter a valid Age");
    }    
}

它正在运行,但问题是,在显示消息后,当 Backspace 时,内容和文本框变为 null ,在这种情况下,此消息框也会再次显示

2 个答案:

答案 0 :(得分:4)

做一点测试,如下:

int i = 0;
if(!string.IsNullOrEmpty(ChildAge.Text) && 
     !int.TryParse(ChildAge.Text, out i)
  )
{
    MessageBox.Show("Enter Valid Age");
}

答案 1 :(得分:0)

尝试使用下方。这样做效果更好。

  bool m_BackPressed = false;
    private void ChildAge_TextChanged(object sender, EventArgs e)
    {
        int i;
        if (!m_BackPressed)            
        {
            if (!int.TryParse(ChildAge.Text, out i))
            {
                MessageBox.Show("Plaese enter a valid Age");
            } 
        }


    }

    private void ChildAge_KeyPress(object sender, KeyPressEventArgs e)
    {

        m_BackPressed = (e.KeyChar.Equals((char)Keys.Back)) ? true : false;
    }