我正在制作一个计算城市人口增长或减少百分比的应用程序。因此,您键入某个城市并在其自己的文本框中键入某个状态,然后键入第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();
}
它将“城市”和“状态”文本框验证为数值,其他任何内容都无效,但我试图在城市或州文本框中输入任何数值时使其无效。只有城市和州文本框中允许的单词
答案 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);
}
}