TextBox中的句子大小写或正确的大小写

时间:2012-01-18 11:21:59

标签: .net vb.net textbox

我希望我的TextBox将我输入的文字设为Sentence Case(ProperCase) ..但我不想在Lost FocusKeyPress等事件中编写任何代码

默认情况下,只要用户输入或输入文本框,每个单词的第一个字母就会自动转换为UpperCase

2 个答案:

答案 0 :(得分:5)

我不知道如何在WinForms中执行此操作而不在事件中放置一些代码。 TextBox的CharacterCasing属性允许您强制输入大写或小写的所有字符,但不能强制执行正确的外壳。顺便说一下,在一个事件中执行它是一行代码:

TextBox1.Text = StrConv(TextBox1.Text, VbStrConv.ProperCase)

在多个文本框中执行此操作的更通用的处理程序涉及将多个事件附加到相同的代码:

'Attach multiple events to this handler
Private Sub MakeProperCase(sender As Object, e As EventArgs) Handles _
    TextBox1.LostFocus, TextBox2.LostFocus, TextBox3.LostFocus

    'Get the caller of the method and cast it to a generic textbox
    Dim currentTextBox As TextBox = DirectCast(sender, TextBox)
    'Set the text of the generic textbox to Proper Case
    currentTextBox.Text = StrConv(currentTextBox.Text, VbStrConv.ProperCase)

End Sub

在ASP.NET中,可以执行此操作without code;有一个名为text-transform的CSS属性,此属性的值之一是capitalize。当应用于文本输入元素时,它会使每个单词的第一个字母为大写。

答案 1 :(得分:0)

这种情况有两个控件:cboDestination和txtUser。当你输入字母时它会成为你想要的东西。

Private Sub properCase_TextChanged(sender As Object, e As System.EventArgs) _ 
        Handles cboDestination.TextChanged, txtUser.TextChanged
        Dim n As Integer = sender.SelectionStart
        sender.Text = StrConv(sender.Text, VbStrConv.ProperCase)
        sender.SelectionStart = n
End Sub