WinRT:检查文本框输入数据是否不包含符号

本文关键字:是否 包含 符号 数据 输入 检查 文本 WinRT | 更新日期: 2023-09-27 18:16:23

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

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;
}

我的第一个条件成功地工作得很好,但在符号数组上它不匹配。需要帮助! !

WinRT:检查文本框输入数据是否不包含符号

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

好的,给你。

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

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

祝你好运!