[英]c# Validating input string and replace to TitleCase using Threading
我想检查用户在文本框中写的内容,并从winform中包含的文本框中获取此输入字符串,然后将其转换为将单词的每个字母都大写。
使用此输入,我首先需要验证他们是否将文本框留空,为Null。 第二步是使用Title大小写检查他们是否形成了连贯的句子“换句话说,确保他们没有大写锁定或反之亦然”。
我一直在研究有关验证的Threading和Regex。 使用线程我已经使用了IsLower()方法,然后使用了ToLower()方法。 这可能是转换输入的相当长的方法,至少可以将每个单词的所有首字母都转换为大写,而将所有中位数转换为小写。
如果我还没有很好地解释我的问题,请问一下,并乐意为您提供任何其他信息,请在下面找到我的源代码:
string myText = tbProductId.Text;
//// Check for null values
if (myText.Equals(""))
{ //// display Error prompt
MessageBox.Show("Please enter somthing");
//// Get length of entered string
}
else
{
for (int i = 0; i < myText.Length; i++)
{
//// check if lower case
if (char.IsLower(myText[i]))
{
string asTitleCase = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.
ToTitleCase(myText.ToLower());
MessageBox.Show("Please enter non Captilised strings");
}
}
for (int i = 0; i < myText.Length; i++)
{
if (char.IsUpper(myText[i]))
{
string asTitleCase = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.
ToTitleCase(myText.ToUpper());
MessageBox.Show("Please enter strings in Title Case");
}
}
}
}
感谢您提供所有反馈和帮助,请在下面找到@ WiktorStribiżew提供的解决方案。 但是,还有一个问题,当按住shift键时,它是不活动的,并且不起作用,为什么在大写锁定时不起作用,而对shift键却不起作用?
string myText = tbProductId.Text;
if (myText.Equals(""))
{
MessageBox.Show("Please enter somthing");
}
else
{
tbProductId.Text = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(tbProductId.Text);
tbProductId.Focus();
tbProductId.Select(tbProductId.Text.Length, 0);
//Move Cursor to location of where error
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.