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 (StrConv()).