2バイト文字と1バイト文字を判別するには?

解決


のんの  2006-09-22 17:28:09  No: 133362

VB.NET2003のTextBoxですが
MaxLengthを10に設定すると
1バイト文字で入力した場合
abcdefghij(10バイト)
となって
2バイト文字だと
あいうえおかきくけこ(20バイト)
となって文字数は同じでもバイト数が異なってしまいます。

これを10バイトしか入力できないようにしたいのですが
よい方法があれば教えてください。


Blue  2006-09-22 17:41:03  No: 133363

WnProcをオーバーライドして、WM_CHAR,WM_PASTEを捕まえて
Encodingクラスを使って、Shift_JISに変換してチェックする方法です。
※Shift_JISに変換できない文字を使う場合もう一工夫必要でしょうが。

入力可能な文字バイト数を設定する
http://jeanne.wankuma.com/tips/textbox/maxbytelength.html


のんの  2006-09-22 20:31:24  No: 133364

Blueさんありがとうございます。
教えていただいたソースを元に
MaxByteLengthTextBox.vb
というクラスを作成しました。
ただこれ(自作コンポーネント)をForm1に貼り付ける
方法がわかりません。通常のTextBoxと同じ感じで
MaxByteLengthTextBox.vbをFom1にドラッグしたのですが
何も起こりませんでした。やり方が違うのでしょうか?
教えてください。


Blue  2006-09-22 22:20:27  No: 133365

単に 〜.vb を追加するのではダメっぽい。(

http://pclabo.org/vb_net/14/main.htm
のように、ユーザコントロールを追加すると出来るんじゃないかな?
(環境がないので試せないです。)


のんの  2006-09-22 23:24:22  No: 133366

Blueさんありがとうございました。
無事に解決いたしました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加