TextBoxのMaxLengthプロパティについて
TextBoxコントロールのMaxLengthプロパティってバイト数じゃなくて文字数で制限をかけてるのな。気づかないで「なんでMaxLength設定してるのに指定バイト数以上入力できるんだーヽ(*`Д´)ノ」となってたw
文字列のバイト数を得るにはEncoding.GetByteCount()を使わないといけない。ちょっとめんどくさい。ちなみにstring.Lengthも文字数を返すようになってる。
Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS"); if (sjisEnc.GetByteCount(TextBox1.Text) <= TextBox1.MaxLength) isValid = true;