无法在c#wpf中使用逗号或点制作数字文本框

时间:2017-01-09 17:23:04

标签: c# wpf

我正在制作一个关于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键)

这些似乎都不适合我,因为我需要用数字做数学,因为它们的目的我需要它们有小数点(或逗号)

感谢任何帮助或想法。

1 个答案:

答案 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);
    }