Every day I get from 1 to 10 emails asking me various VB questions… some I answer by pointing to a link, some by providing code, and sometimes I just point people to the newsgroups or forums that exist for this type of question… but this time I thought I’d just post the question and answer into my blog …
The Question (edited slightly):
I just want to ask how to make the string in to proper format.. ex… input: gerald
this must be the output: Gerald
and i want it to interactively change when i’m inputing a string in a textbox..
And the answer is to put this code into the TextChanged event of your textbox;
Dim ci As Globalization.CultureInfo = _ System.Threading.Thread.CurrentThread.CurrentCulture Private Sub TextBox1_TextChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles TextBox1.TextChanged Dim pos As Integer = TextBox1.SelectionStart TextBox1.Text = ci.TextInfo.ToTitleCase(TextBox1.Text) If pos > 0 AndAlso pos <= TextBox1.Text.Length Then TextBox1.SelectionStart = pos End If End Sub
The key is that the CultureInfo class provides a TextInfo instance, which in turn has a method of
ToTitleCase on it… This KB article provides more info and also shows an alternate method to achieve the same results (
Thoughts on this post? Feel free to reach out on Twitter!