我是Windows 8 Phone的新手。我正在写一个计算器应用程序,它只能接受文本框中的数字和一个小数点。如何防止用户在文本框中输入两个或多个小数点,因为计算器无法处理。
我一直在使用keydown事件,这是最好的还是应该使用keydown事件?
private void textbox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) {
}
最佳答案
您还可以将regexp与TextChanged
事件一起使用:
下面的代码片段将处理任何整数和浮点数,包括正数和负数
string previousInput = "";
private void InputTextbox_TextChanged(object sender, RoutedEventArgs e)
{
Regex r = new Regex("^-{0,1}\d+\.{0,1}\d*$"); // This is the main part, can be altered to match any desired form or limitations
Match m = r.Match(InputTextbox.Text);
if (m.Success)
{
previousInput = InputTextbox.Text;
}
else
{
InputTextbox.Text = previousInput;
}
}