【发布时间】:2021-01-26 20:19:52
【问题描述】:
我使用过以下网站:http://msdn.microsoft.com/en-us/library/kkx4h3az.aspx 验证输入 8 位数字,
然后我尝试以这种方式进行验证,以便只允许将字母数字(字母)值输入到文本框中,但它不起作用。
您必须采用不同的方法来只允许字母吗?如果有怎么办?
谢谢
【问题讨论】:
我使用过以下网站:http://msdn.microsoft.com/en-us/library/kkx4h3az.aspx 验证输入 8 位数字,
然后我尝试以这种方式进行验证,以便只允许将字母数字(字母)值输入到文本框中,但它不起作用。
您必须采用不同的方法来只允许字母吗?如果有怎么办?
谢谢
【问题讨论】:
这不是我的想法,但它应该让你开始......这似乎是一个常见的问题。如果这不起作用,请继续搜索 SO,您会找到答案。
Regex regex = new Regex("[a-zA-Z]");
Match match = regex.Matches(textBox1.Text);
【讨论】:
首先,字母数字表示字母和数字。如果你只想要字母,你必须在你的面具中使用“L”。参考this link。
或者,您可以检查文本更改事件中的输入。这也适用于传统的 TextBox(对于屏蔽文本框,您必须将 TextBox 更改为 MaskedTextBox)。见以下代码:
private void textBox1_TextChanged(object sender, EventArgs e)
{
TextBox tb = sender as TextBox;
if (!tb.Text.All(char.IsLetter))
{
MessageBox.Show("Only Letters are allowed.", "Invalid Input", MessageBoxButtons.OK, MessageBoxIcon.Warning);
tb.SelectAll();
}
}
代码需要using System.Linq;
【讨论】: