C# 是否允许用户只输入文本?
如何使布尔语句只允许文本?我有这个代码只允许用户输入数字,但不知道如何做文本C# 是否允许用户只输入文本?,c#,C#,如何使布尔语句只允许文本?我有这个代码只允许用户输入数字,但不知道如何做文本 bool Dest = double.TryParse(this.xTripDestinationTextBox.Text, out Miles); bool MilesGal = double.TryParse(this.xTripMpgTextBox.Text, out Mpg); bool PriceGal = double.TryParse(this.xTripPricepgTextBox.Text, o
bool Dest = double.TryParse(this.xTripDestinationTextBox.Text, out Miles);
bool MilesGal = double.TryParse(this.xTripMpgTextBox.Text, out Mpg);
bool PriceGal = double.TryParse(this.xTripPricepgTextBox.Text, out Price);
您可以使用正则表达式,请浏览此处:您可以使用正则表达式,请浏览此处:更新:查看您的评论,我建议您阅读本文:
原始答案:最简单的方法是使用LINQ,至少如果您使用的是.NET 3.5:
bool isAllLetters = s.All(c => char.IsLetter(c));
在较旧的.NET版本中,您可以创建一个方法来执行此操作:
bool isAllLetters(string s)
{
foreach (char c in s)
{
if (!char.IsLetter(c))
{
return false;
}
}
return true;
}
也可以使用正则表达式。如果要允许使用Unicode中定义的任何字母,则可以使用以下正则表达式:
bool isOnlyLetters = Regex.IsMatch(s, @"^\p{L}+$");
如果要限制为A-Z,则可以使用以下选项:
bool isOnlyLetters = Regex.IsMatch(s, @"^[a-zA-Z]+$");
更新:查看您的评论,我建议您阅读本文:
原始答案:最简单的方法是使用LINQ,至少如果您使用的是.NET 3.5:
bool isAllLetters = s.All(c => char.IsLetter(c));
在较旧的.NET版本中,您可以创建一个方法来执行此操作:
bool isAllLetters(string s)
{
foreach (char c in s)
{
if (!char.IsLetter(c))
{
return false;
}
}
return true;
}
也可以使用正则表达式。如果要允许使用Unicode中定义的任何字母,则可以使用以下正则表达式:
bool isOnlyLetters = Regex.IsMatch(s, @"^\p{L}+$");
如果要限制为A-Z,则可以使用以下选项:
bool isOnlyLetters = Regex.IsMatch(s, @"^[a-zA-Z]+$");
你可以做几件事中的一件
你可以做几件事中的一件
您可以在按键事件中使用以下代码:
if (!char.IsLetter(e.KeyChar)) {
e.Handled = true;
}
您可以在按键事件中使用以下代码:
if (!char.IsLetter(e.KeyChar)) {
e.Handled = true;
}
我发现连接到文本框的文本更改事件并接受/拒绝更改是一个可接受的解决方案。“仅允许文本”是一个相当模糊的定义,但您也可以检查新添加的文本(下一个字符)是否为数字,并简单地拒绝所有数字/不允许的字符。这会让用户觉得他们只能输入字符和特殊字符(如点、问号等)
我发现连接到文本框的文本更改事件并接受/拒绝更改是一个可接受的解决方案。“仅允许文本”是一个相当模糊的定义,但您也可以检查新添加的文本(下一个字符)是否为数字,并简单地拒绝所有数字/不允许的字符。这会让用户觉得他们只能输入字符和特殊字符(如点、问号等)
你说的“文本”是什么意思?只有字母表中的字母?是的,这是强制用户只能输入他的名字和姓氏。如果名字包含空格、连字符或其他特殊字符,该怎么办?也许有些人的名字里有数字,谁知道…你说的“文本”是什么意思?只有字母表中的字母?是的,这是强制用户只能输入他的名字和姓氏。如果名字包含空格、连字符或其他特殊字符,该怎么办?甚至有些人的名字也有数字,谁知道……只有检查最后一个字符才能在字符串中插入不合格字符。在每个Twitter事件中验证整个字符串可能会更好。只有在字符串中插入不符合字符时,才检查最后一个字符是没有帮助的。验证每个TextChanged事件的整个字符串可能更好。这一个对我的解决方案最有效,但感谢所有的答案,伙计们,我非常感谢。@Michael,你看过MaskedTextBox了吗?这一个对我的解决方案最有效,但感谢所有的答案,伙计们,我非常感谢。@Michael,你有没有看那个戴面具的盒子?