验证文本框中的数据C#

时间:2017-11-06 17:07:04

标签: c# visual-studio

我正在制作一个计算城市人口增长或减少百分比的应用程序。因此,您键入某个城市并在其自己的文本框中键入某个状态,然后键入第3个文本框中的开始填充和第4个文本框中的结束填充,然后点击计算,它将显示基于增加或减少在您输入的人口数据上。

现在我验证了总体的数字,这样只要在总体文本框中输入非数字值,就会显示一个消息框,告诉用户输入数字数据。

我无法弄清楚如何对城市和州的数据做同样的事情。如果有人在城市或州文本框中输入了一个号码,我该如何验证单词?

每当在城市或州文本框中输入数字时,如何显示“无效格式”的消息框?

这是我的代码

//Create a double for city
double dblCity;

//Create a Double for state
double dblState;

//Validate City
if (double.TryParse(txtCity.Text, out dblCity))
{
    //Validate State
    if (double.TryParse(txtState.Text, out dblState))
    {

    }
    else
    {
        //Display an error message for the textbox
        MessageBox.Show("Invalid input for State.");

        txtState.Focus();
        txtState.SelectAll();
    }
}
else
{
    //Display an error message for the textbox
    MessageBox.Show("Invalid input for City.");

    txtCity.Focus();
    txtCity.SelectAll();
}

它将“城市”和“状态”文本框验证为数值,其他任何内容都无效,但我试图在城市或州文本框中输入任何数值时使其无效。只有城市和州文本框中允许的单词

2 个答案:

答案 0 :(得分:1)

如果您必须拥有正确的州/市条目,那么您最好提供下拉列表而不是文本框。 您需要填写列表 我从来没有使用过这个数据集,但是快速的互联网搜索会识别出一些可以下载这些列表的资源。
您可能需要或可能不需要支付下载此类列表的权利 - 这可能会也可能不会影响列表的完整性和准确性。

可能的资源(我还没有检查过它们)包括:

https://github.com/grammakov/USA-cities-and-states
https://www.uscitieslist.org
http://www.citygridmedia.com/developer/blog/csv-download-of-cities-in-the-us-by-state

答案 1 :(得分:0)

不要在一个地方进行所有验证,而是尝试这样的事情:

在XAML中为City文本框和State Textbox创建一个“TextChanged”处理程序。

在代码隐藏中,您的处理程序应该类似于:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    if (!System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, "^[a-zA-Z]"))
    {
        MessageBox.Show("This textbox accepts only alphabetical characters");
        textBox1.Text.Remove(textBox1.Text.Length - 1);
    }
}