我有一个Silverlight应用程序,其文本框的输入仅限于十进制数。在网络上搜索我遇到了以下可能的解决方案(好奇地在不同的地方,不同的人声称作者是同一行代码) 它似乎工作得很好,除非至少输入一个数字后,它才会允许字母' d'无论是大写还是小写都可以输入,但我无法弄清楚这是为什么,因此无法弄清楚如何防止这种情况发生。任何人都可以请提供解决方案。非常感谢。Silverlight文本框只接受小数点
private void Unit_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Tab)
{
}
var thisKeyStr = "";
if (e.PlatformKeyCode == 190 || e.PlatformKeyCode == 110)
{
thisKeyStr = ".";
}
else
{
thisKeyStr = e.Key.ToString().Replace("D", "").Replace("NumPad", "");
}
var s = (sender as TextBox).Text + thisKeyStr;
var rStr = "^[0-9]+[.]?[0-9]*$";
var r = new Regex(rStr, RegexOptions.IgnoreCase);
e.Handled = !r.IsMatch(s);
}
谢谢你提供的,你//也是可能的:是,似乎再工作最适合我,感谢解决方案。 – user995689 2012-01-28 12:36:29