VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -