以下方法需要成功获取用户输入并将其输入更新为标题案例格式,例如在键入时每个单词的开头处的大写,这将输入到win表单项目的文本框中。我有这个方法的问题,因为它正确转换,直到我按下大写锁定或转移。如果我按下两个按钮而不确定这是否相互抵消,它也会起作用。 我一直在研究Regex,但不确定如何在这个类中实现它。请提前感谢以下代码找到该代码。
// User input stored in Temp Var
string myText = tbProductId.Text;
//
if (myText.Equals(null))
{
// validation, check if the user has entered anything, if Null.
MessageBox.Show("Please enter somthing");
}
else
{
// convert to Title Case
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 was found
}
答案 0 :(得分:0)
您可以简单地使用:
tbProductId.CharacterCasing = CharacterCasing.Lower
您解释的行为是docs的标准是正确的,这是它的简单方法。
我也同意@Tetsuya Yamamoto的上述评论
答案 1 :(得分:0)
最终结果和回答感谢上面发布的人
// User input stored in Temp Var
string myText = tbProductId.Text;
var regex = new Regex(@"[^a-zA-Z0-9\s]");
if (myText.Equals("") ||(regex.IsMatch(myText.ToString())))
{
MessageBox.Show("Please enter a Valid value no special chars or leaving this blank!!!!");
}
else
{
tbProductId.Text = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(tbProductId.Text.ToLower());
tbProductId.Focus();
tbProductId.Select(tbProductId.Text.Length, 0);
//Move Cursor to location of where error
}
答案 2 :(得分:0)
char for char ...
public void textBox1_Click(Object ob, EventArgs eventArgs){
if (textBox1.Text.Length > 0)
{
string text = textBox1.Text;
string tmpText = "";
if (textBox1.Text.Length == 1)
{
tmpText = text.ToUpper();
}
else
{
for (int i = 0; i < text.Length; i++)
{
if (i < text.Length - 1)
tmpText += text[i];
else if (text[text.Length - 2] == ' ')
tmpText += text[text.Length - 1].ToString().ToUpper();
else
tmpText += text[i];
}
}
textBox1.Text = tmpText;
textBox1.Focus();
textBox1.Select(textBox1.Text.Length, 0);
}
}