【发布时间】:2014-05-20 07:01:33
【问题描述】:
我是编程新手,我正在尝试制作一个只接受字母和数字的文本框。我已经寻找解决方案,但我找不到我想要的。这是我到目前为止所做的:
private void TB1_KeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.Key == VirtualKey.Space)
{
e.Handled = true;
}
var regex = new Regex(@"[^a-zA-Z0-9\s]");
if (regex.IsMatch(e.Key.ToString()))
{
e.Handled = true;
}
}
我可以将数字删除到正则表达式中,以防止用户输入特殊字符,但这也会限制他们输入数字。此文本框将成为 Windows 8 商店应用程序的一部分,我正在使用 C#。希望有人可以帮助我。谢谢!
编辑:
我不得不放弃限制用户在文本框中输入特殊字符,因为我离它越来越近了。我所做的是我使用了我的第一个代码,但做了一些更改。
private void TB1_KeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.Key == VirtualKey.Enter)
{
var regex = new Regex(@"[^a-zA-Z0-9\s]");
if (regex.IsMatch(TB1.Text))
{
t1.Text = "Can't contain special characters.";
}
}
}
我没有在“IsMatch”的测试中使用按键,而是使用了文本框中的文本。此 if 语句将过滤文本框中是否存在除数字和字母之外的其他字符,因此我创建了一个文本块,它将注释文本框中有一个特殊字符。
【问题讨论】: