人生最悪の忘れ物

検索してもAPIを使用するものや、C#のソースしか無かったので質問させてください。

表題通りなのですが、テキストボックスに5バイトまで入力し、5バイトを超えたら入力できないように制御したいのですが、経験が浅いためよくわかりません。
もしよかったら詳しい方、教えていただけないでしょうか。
たいへん恐れ入りますがよろしくお願いいたします。m(_ _;)m

A 回答 (2件)

5バイトとか書いていることから推測すると、この場合のバイト数とは、Shift_JISでのバイト数のことかな?


VB2005では基本的に文字列はUnicode扱いなので、いわゆる半角も全角も2バイトです。
Shift_JISで考えるなら、例えばKeyPressイベントで


Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
'現在入力されている文字が5バイトだったらそれ以上入力させない。
'但しBackSpaceは許可
If System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(TextBox1.Text) >= 5 _
AndAlso e.KeyChar <> Chr(Keys.Back) Then
e.Handled = True
End If
End Sub
とか。
    • good
    • 1
この回答へのお礼

なるほど!
教えてもらった方法で行けそうです。
たいへんありがとうございました。
感謝感謝

お礼日時:2007/07/24 11:19

テキストボックスのプロパティにMaxLengthというのがあるが


それではダメですか。設定数桁以上は受け付けないようだが。
それ以外は1文字入力したら通知してもらうAPIを使う必要があるように思う。
Enterで入力確定後の長さチェックでダメならば。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2007/07/24 11:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報