• ベストアンサー

【VB2005】テキストボックス内の文字列をバイト数で制限したい

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

質問者が選んだベストアンサー

  • ベストアンサー
  • NYOI
  • ベストアンサー率58% (56/96)
回答No.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 とか。

sineminna
質問者

お礼

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

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.1

テキストボックスのプロパティにMaxLengthというのがあるが それではダメですか。設定数桁以上は受け付けないようだが。 それ以外は1文字入力したら通知してもらうAPIを使う必要があるように思う。 Enterで入力確定後の長さチェックでダメならば。

sineminna
質問者

お礼

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

すると、全ての回答が全文表示されます。

関連するQ&A