使用大写锁定&转换为TitleCase转移按压?

时间:2017-05-15 07:46:19

标签: c# formatting

以下方法需要成功获取用户输入并将其输入更新为标题案例格式,例如在键入时每个单词的开头处的大写,这将输入到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.TextInf‌​o.ToTitleCase(tbProd‌​uctId.Text);
    tbProductId.Focus();
    tbProductId.Select(tbProductId.Text.Length, 0);
    //Move Cursor to location of where error was found
}

3 个答案:

答案 0 :(得分:0)

您可以简单地使用:

tbProd‌​uctId.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.TextInf‌​‌​o.ToTitleCase(tbPr‌​od‌​uctId.Text.ToLow‌​er());
            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);
        }
    }