2013-03-05 3 views
0

TextBox와 관련된 쿼리가 있습니다. 입력란에 단어를 입력하면 단어가 자동으로 변경됩니다. 예 : "my name is kumar"에서 "My Name Is Kumar"로 바꾸고 textBox1_TextChanged 이벤트에서 수행해야합니다. 공백 뒤에 첫 번째 알파벳을 textBox1_TextChanged 이벤트의 텍스트에서 위쪽으로 설정합니다.

현재 내가

private void textBox1_Leave(object sender, EventArgs e) 
{ 
    textBox1.Text = textBox1.Text.Substring(0, 1).ToUpper() + textBox1.Text.Substring(1); 
} 

이 뛰어난 저를 도와주세요 Leave 이벤트에이 일을하고있다. 미리 감사드립니다. 당신은 신체의 나머지 부분에 다음 줄을 추가하는 경우 :

답변

7

사용 TextInfo.ToTitleCase Method

private void textBox1_Leave(object sender, EventArgs e) 
{ 

    TextInfo myTI = new CultureInfo("en-US",false).TextInfo; 
    textBox1.Text = myTI.ToTitleCase(textBox1.Text) 

} 
+0

아니오 아니오 아니오 내가 떠난 후이 결과를 원하는 DNT. 대신 나는 텍스트 변경 이벤트에서 그것을 원한다. :) –

+0

textChange 이벤트 –

+0

@ user2071493에 코드를 추가해야 텍스트 상자를 두 번 클릭해야합니다. 그런 다음 생성 된 코드 블록에 내려 놓으십시오. –

2

이전의 대답에 후속으로, 당신은 올바른 동작이 유지되어 있는지 확인합니다 :

 textBox1.SelectionStart = textBox1.TextLength; 
     textBox1.SelectionLength = 0; 

그래서 전체 솔루션은 다음과 같습니다

private void textBox1_Leave(object sender, EventArgs e) 
{ 
     //Original from JW's answer 
     TextInfo myTI = new CultureInfo("en-US",false).TextInfo; 
     textBox1.Text = myTI.ToTitleCase(textBox1.Text); 
     //New lines to ensure the cursor is always at the end of the typed string. 
     textBox1.SelectionStart = textBox1.TextLength; 
     textBox1.SelectionLength = 0; 
} 
+0

나는 그것을 얻었다. 답장을 보내고 고맙습니다. –

2

이 해결해야한다 요 UR 문제는 : 그것은 구현하는 간단하기 때문에

private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
     TextInfo myTI = new CultureInfo("en-US", false).TextInfo; 
     textBox1.Text = myTI.ToTitleCase(textBox1.Text); 
     textBox1.SelectionStart = textBox1.Text.Length; 
    } 
+0

괜찮습니다. 답장을 보내 주셔서 감사합니다. :) –

+0

괜찮아. 알았어. 답장을 보내 주셔서 감사합니다. :) –

1

나는 여기에 Regex을 사용하고 난 당신의 TextBox 개최 큰 문자열을 생각하지 않습니다. 당신이 쓰는대로 자동으로 보정 할 문자열을 원하기 때문에, 대신 Leave 하나의 TextChanged 이벤트가 필요합니다

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    Regex regex = new Regex(" [a-z]"); 
    foreach (Match match in regex.Matches(textBox1.Text)) 
     textBox1.Text = regex.Replace(textBox1.Text, match.Value.ToUpper()); 
} 
+0

괜찮아. 알았어. 답장을 보내 주셔서 감사합니다. :) –

관련 문제