■6925 / inTopicNo.2) |
Re[1]: テキストボックスMaxLengthの文字数とは |
□投稿者/ Blue 曹長(84回)-(2006/09/28(Thu) 15:24:26)
|
分類:[C#]
>MaxLengthの文字数 はバイト数(文字幅)関係無しの文字数です。 全角1文字は、Shift_JISコードであれば2バイトですが、1文字です。 半角1文字は、Shift_JISコードであれば1バイトですが、1文字です。
よって
textBox1.MaxLength = 100;
とすれば、全角であろうが半角であろうが100文字入ります。 Shift_JISコードでのバイト数で制御したいのであれば、MaxLengthでは不可能です。 やるのであれば TextBoxを継承して、WndProcをオーバーライドし、WM_CHAR,WM_PASTEあたりを捕まえて 自前で処理するしかないです。 入力可能な文字バイト数を設定する http://jeanne.wankuma.com/tips/textbox/maxbytelength.html
ちなみに、サロゲートを考えなければ、Unicode(UCS2?)は全角半角ともに2バイトです。
|
0
|