VB.NET2003のTextBoxですが
MaxLengthを10に設定すると
1バイト文字で入力した場合
abcdefghij(10バイト)
となって
2バイト文字だと
あいうえおかきくけこ(20バイト)
となって文字数は同じでもバイト数が異なってしまいます。
これを10バイトしか入力できないようにしたいのですが
よい方法があれば教えてください。
WnProcをオーバーライドして、WM_CHAR,WM_PASTEを捕まえて
Encodingクラスを使って、Shift_JISに変換してチェックする方法です。
※Shift_JISに変換できない文字を使う場合もう一工夫必要でしょうが。
入力可能な文字バイト数を設定する
http://jeanne.wankuma.com/tips/textbox/maxbytelength.html
Blueさんありがとうございます。
教えていただいたソースを元に
MaxByteLengthTextBox.vb
というクラスを作成しました。
ただこれ(自作コンポーネント)をForm1に貼り付ける
方法がわかりません。通常のTextBoxと同じ感じで
MaxByteLengthTextBox.vbをFom1にドラッグしたのですが
何も起こりませんでした。やり方が違うのでしょうか?
教えてください。
単に 〜.vb を追加するのではダメっぽい。(
http://pclabo.org/vb_net/14/main.htm
のように、ユーザコントロールを追加すると出来るんじゃないかな?
(環境がないので試せないです。)
Blueさんありがとうございました。
無事に解決いたしました。
ツイート | ![]() |