投稿日 | : 2003/01/23(Thu) 20:36 |
投稿者 | : はらだ |
URL | : |
タイトル | : TextBoxでのバイト数による入力制限について |
お世話になっております。
はらだと申します。
VB.netでの質問です。
TextBoxに対して、MaxLengthプロパティ値をバイト数として入力制限を設けたいのですが、
良い方法が見つかりません。
その際に、Validatedイベントで検証するのではなく、従来のVB6.0のようにキー入力自体を
受け付けないようにしたいと考えています。
既に、質問されている内容かとは思うのですが、検索をしても上手くヒットしません。
そこで、ご存知の方がいらしたら、教えて頂けないでしょうか。
サンプルコードを載せておきますので、よろしくお願いいたします。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Private Sub TextBox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox.TextChanged
'テキストボックス内のバイト数
Dim intByteLength As Integer = System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(TextBox.Text)
'テキストエディタ内の文字数
Dim intLength As Integer = TextBox.Text.Length
Dim strText As String = New String(TextBox.Text)
Do Until intByteLength <= TextBox.MaxLength
strText = strText.Substring(0, strText.Length - 1)
intByteLength = System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(strText)
Loop
TextBox.Text = strText
End Sub