自分もこうしたものを考えているのですが最初に仕様で悩んだので質問者さんがお考えの仕様を伺いたいと思います。以下パターンを"&&&&-&&&&"、初期状態を"xxxx-xxxx"と仮定します。
初期状態から"1"を入力して"1xxx-xxxx"になったとしてBackspaceキーやDeleteキーを入力した場合どのような状態にしますか?"xxxx-xxxx"でしょうか?
初期状態から"12"を入力した後、カーソルを左右に移動した際の動作はどう考えますか?例えば右に移動して"3"を入力した場合は"12x3-xxxx"というような入力をさせますか?それとも未入力の文字より右へは移動禁止といった仕様ですか?左への移動は入力された文字数分は移動可能でしょうか?カーソル移動を許すとして移動の際にハイフンは自動的に飛ばして移動するのですよね?
8文字目を入力し終わったときカーソルは最後の文字の右に置くのでしょうか?それとも次のフィールドへTabOrderに従って遷移?
Shiftを押しながらカーソル操作したりマウスドラッグ操作などでTextBox上の文字列の一部あるいはControl+Aでの全選択はどのようにしますか?ハイフンを跨いだ選択範囲だった場合選択範囲にハイフンが含まれているかのような表示にしますか?
つまりコピーの際にハイフンをコピー対象に含めるかという質問です。
あらかじめ"1"を入力していて一旦フォーカスを移動してから再度フォーカスを戻して"2"を入力した場合にカーソル位置はどのようにするのが期待ですか?初期位置でしょうか?それとも"1"の後ろでしょうか?
以上のようなコントロールの振る舞いは固定的ですか?それともカスタマイズプロパティーを用意したりしますか?
ごちゃごちゃと書いてしまってすみません。なんとなく予想は付くのですが一応確認してみました。自分が思うとおりの仕様だとするとTextBoxをそれなりにカスタマイズ(キー入力イベントやフォーカス遷移)することになる気がしました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/19 02:47
2017/01/19 03:03