我正在制作一个关于WPF财务管理的程序,我需要像标题所描述的那样的文本框。
在你打电话给这个副本之前,我已经在多个网站上进行了搜索,并且所有提出的解决方案都只使用了数字,但它们似乎无法识别我的点密钥或逗号密钥(我使用的是拉丁美洲qwerty键盘),我不知道我尝试的解决方案是否是特定于区域的(因为键盘)或我的代码中的某些内容。
到目前为止,我已经尝试过:
This, with multiple Regex I have found around the internet that should have the same result
与之前相同,但手动将e.KeyChar与Convert.ToChar(“。”)进行比较
使用KeyDown事件和多个if(e.Key == Key.DX)(这适用于点,但不适用于数字,我尝试了D0-D9键和OEM键)
这些似乎都不适合我,因为我需要用数字做数学,因为它们的目的我需要它们有小数点(或逗号)
感谢任何帮助或想法。
答案 0 :(得分:0)
根据您发布的链接,我为您修改了
private void NumberValidationTextBox(object sender, TextCompositionEventArgs e)
{
var ue = e.Source as TextBox;
Regex regex;
if (ue.Text.Contains("."))
{
regex = new Regex("[^0-9]+");
}
else
{
regex = new Regex("[^0-9.]+");
}
e.Handled = regex.IsMatch(e.Text);
}