• 締切済み

C# MaskedTextBox にて、タブ移動

はまってます。。 宜しくお願いします。 【やりたいこと】 MaskedTextBox にて、最大文字を入力したら、次のコントロールに移動。 TextBox だとMaxLengthを持っているので下記でうまくいきました。 OnTextChangedイベントにて if (TextBox.MaxLength == TextBox.Text.Length) {   textBox2.Focus(); } MaskedTextBox だとMaxLengthが無いので、判定基準がわかりません。 ご教授ください。 宜しくお願いします。

みんなの回答

  • x-1919
  • ベストアンサー率52% (91/173)
回答No.1

そりゃパスワードを入力させるコントロール自体に MaxLength なんてプロパティは不要だもの。 パスワードの強度はアプリ側でコントロールすべきで、入力コントロールで制限を付けられちゃかなわんよ。 開発者が 「パスワードは 8文字だ」 って決めちゃったら、利用者はきっちり 8文字入れなきゃならんの? それとも常識的に判断した上限を 50文字とかにしておいて、もし 50文字まで入力しちゃったら次のコントロールに移動させようって話? いずれにせよ上記の通り、パスワードの文字数は単なる入力コントロールで管理すべきじゃないので MaxLength プロパティは存在しません。 どうしてもやりたいのなら 2つ案があります。 1つ目: テキストボックスじゃない所で MaxLength に変わる変数なり定数を持っておき、入力された文字列の長さと比較する。 2つ目: MaxLength プロパティを実装したユーザーコントロールを作成する。

54545
質問者

補足

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

関連するQ&A