在windows窗体中验证文本框上的数字INTEGER问题

本文关键字:数字 INTEGER 问题 文本 windows 窗体 验证 | 更新日期: 2023-09-27 17:50:10

我有一个Windows窗体上的文本框,我想在这个文本框中只插入数字。对于

,我使用了以下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");
    }    
}

它是工作的,但问题是,在显示消息后,当我退格内容和文本框变成null,在这种情况下,也这个消息框再次显示

在windows窗体中验证文本框上的数字INTEGER问题

做一个像下面这样的小测试:

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

尝试下面使用。

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