電子書籍の厳選無料作品が豊富!

はまってます。。
宜しくお願いします。

【やりたいこと】
MaskedTextBox にて、最大文字を入力したら、次のコントロールに移動。
TextBox だとMaxLengthを持っているので下記でうまくいきました。

OnTextChangedイベントにて
if (TextBox.MaxLength == TextBox.Text.Length)
{
  textBox2.Focus();

}

MaskedTextBox だとMaxLengthが無いので、判定基準がわかりません。
ご教授ください。
宜しくお願いします。

A 回答 (1件)

そりゃパスワードを入力させるコントロール自体に MaxLength なんてプロパティは不要だもの。


パスワードの強度はアプリ側でコントロールすべきで、入力コントロールで制限を付けられちゃかなわんよ。
開発者が 「パスワードは 8文字だ」 って決めちゃったら、利用者はきっちり 8文字入れなきゃならんの?
それとも常識的に判断した上限を 50文字とかにしておいて、もし 50文字まで入力しちゃったら次のコントロールに移動させようって話?

いずれにせよ上記の通り、パスワードの文字数は単なる入力コントロールで管理すべきじゃないので MaxLength プロパティは存在しません。
どうしてもやりたいのなら 2つ案があります。

1つ目: テキストボックスじゃない所で MaxLength に変わる変数なり定数を持っておき、入力された文字列の長さと比較する。
2つ目: MaxLength プロパティを実装したユーザーコントロールを作成する。

この回答への補足

ありがとうございます。
拡張プロパティMaxLengthを持てば出来そうですが、MaxLenethを設定しないと動作しない、という動きは避けたいです。
パスワードだけではなく、郵便番号を作成した場合など最後の7桁目が入ったタイミングで、次のコントロールに行きたい。
よろしくおねがいします。

補足日時:2012/07/04 08:27
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!