我有一個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