我想检查我的文本框输入数据是否包含符号。 我已经实现了这个
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;
}
我的第一个条件成功正常但在符号数组上它并不匹配。 需要帮助!!
答案 0 :(得分:0)
e.Key
是VirtualKey
枚举类型,enum.ToString()
返回枚举的字符串表示形式。 VirtualKey
或VirtualKey..
没有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
}
毫无疑问,这是最简单的方法。
祝你好运!