私はTextBox
にSentence Case(ProperCase)
というテキストを入力しますが、Lost Focus
またはKeyPress
のようなイベントではコードを書いたくありません。テキストボックスで大文字または小文字が正しく表示される
デフォルトでは、ユーザーがテキストボックスに入力または入力するたびに、すべての単語の最初の文字が自動的にUpperCase
に変換されます。
私はTextBox
にSentence Case(ProperCase)
というテキストを入力しますが、Lost Focus
またはKeyPress
のようなイベントではコードを書いたくありません。テキストボックスで大文字または小文字が正しく表示される
デフォルトでは、ユーザーがテキストボックスに入力または入力するたびに、すべての単語の最初の文字が自動的にUpperCase
に変換されます。
イベントにコードを入れずに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プロパティがあり、このプロパティの値の1つはcapitalize
です。テキスト入力要素に適用すると、各単語の最初の文字を大文字にします。
この場合、cboDestinationとtxtUserという2つのコントロールがあります。あなたが手紙をタイプしている間、それはあなたが望むものを作ります。
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
は私が間違っているかもしれないが、私はこれを行うための唯一の方法は、テキストがイベントを使用して入力されるテキストボックスの値をチェックし、それに応じてテキストを更新することだと思います。 –
私はCulture Classを使って試しましたが、処理上重くなると思います。 –
Win APIのコードはありません –