WinRT:检查TextBox输入数据是否不包含符号

时间:2014-08-05 13:02:15

标签: c# textbox windows-runtime winrt-xaml

我想检查我的文本框输入数据是否包含符号。 我已经实现了这个

public static Boolean NumericTextBox(object sender, KeyRoutedEventArgs e)
{
    bool isTrue = false;
    //string _dot=".",_comma=",",_staric="*",_and="&",_power="^",_dollar="$",_percentage="%";
    string[] symbols = { ".", ",", "(", ")", "*", "*", "-", "^", "%", "#", "@","!" };

    if (!System.Text.RegularExpressions.Regex.IsMatch(e.Key.ToString(), "\\d+"))
    {
        return isTrue = true; 
    }
    else if (symbols.Contains(e.Key.ToString()))
    {
        return isTrue = false;
    }

    return isTrue;
}

我的第一个条件成功正常但在符号数组上它并不匹配。 需要帮助!!

2 个答案:

答案 0 :(得分:0)

e.KeyVirtualKey枚举类型,enum.ToString()返回枚举的字符串表示形式。 VirtualKeyVirtualKey..没有VirtualKey.,这样的值,因为这将是无效的语法。您可以检查这些键的VirtualKey值是什么,并使符号成为VirtualKey数组而不是字符串数组。您还可以检查Text TextBox属性的内容,因为它已包含在您获得KeyDown事件时键入的符号。请注意,用户可能刚刚粘贴了一个包含其中一个符号的值,此时e.Key可能只是VirtualKey.V

答案 1 :(得分:0)

当然,你走了。

var textbox = new TextBox
{
    Text = "$1,234.00"
};
var number = default(double);
if (double.TryParse(textbox.Text, out number))
{
    // parse success
}
else
{
    // parse fail
}

毫无疑问,这是最简单的方法。

祝你好运!