我需要在文本框中只允许gps坐标值,格式为2位数,然后是小数点,小数点后5位数。例如。 “28.98706”。
我怎样才能做到这一点?如果有人能解释使用正则表达式和正则表达式之间的区别,我也很感激。
答案 0 :(得分:4)
不要使用文本框。改为使用NumericUpDown - 它以十进制格式存储值,允许您设置小数点精度。
同样是regex =正则表达式。
答案 1 :(得分:1)
可能numericUpDown
会更好。但是这里有一个TextBox
的可能解决方案:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsControl(e.KeyChar)) return;
if (e.KeyChar == '.' && textBox1.Text.Length < 2) e.Handled = true;
if (!char.IsDigit(e.KeyChar) && e.KeyChar != '.') e.Handled = true; // check for non-digit character
if (textBox1.Text.Length == 2 && e.KeyChar != '.') e.Handled = true; // you should type dot '.'
if (textBox1.Text.Length == 8) e.Handled = true;
}
答案 2 :(得分:0)
正则表达式和正则表达式是一回事。使用它来验证用户对允许值模式的输入。
示例:
if(!Regex.IsMatch("[0-9]+\.?[0-9]*", TextBox.Text))
return false;
return true;