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;
}
我的第一个条件成功地工作得很好,但在符号数组上它不匹配。需要帮助! !
e.Key
是VirtualKey
的枚举类型,enum.ToString()
返回一个枚举的字符串表示形式。没有VirtualKey..
或VirtualKey.,
这样的VirtualKey
值,因为这将是无效的语法。您可以检查这些键的VirtualKey
值是什么,并使符号成为VirtualKey
数组而不是字符串数组。您还可以检查TextBox
的Text
属性的内容,因为在您获得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
}
毫无疑问,这是最简单的方法。
祝你好运!