我希望我的TextBox
将我输入的文字设为Sentence Case(ProperCase)
..但我不想在Lost Focus
或KeyPress
等事件中编写任何代码
默认情况下,只要用户输入或输入文本框,每个单词的第一个字母就会自动转换为UpperCase
。
答案 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