在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,在这种情况下,也这个消息框再次显示。
做一个像下面这样的小测试:
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;
}