none
MaskedTextBox の上書入力 (VB2005) RRS feed

  • 質問

  • MaskedTextBoxを使用して、『郵便番号』を入力する項目を作成しました。
    (Maskは、郵便番号000-0000です)

    他に、氏名・住所…等、TextBox項目を作成し、
    フォーカスを取得(Enterイベント)で 「SelectAll」を行い、
    コントロール内のテキストを選択させています。
    ※MaskedTextBoxは、Enterイベントでは、テキスト選択ができず、
     GetFocusイベントで「SelectAll」させています。

    他のコントロールから、『郵便番号』にフォーカスが移動した際、
    「123-4567」と入力されているテキストを
    選択されている、そのままの状態で「765-4321」と上書したいのですが、
    上手く動作しません。
    (165-4321となります。7が消えます)

    InsetKeyModeプロパティを「Overwrite」に設定しています。
    (「Insert」では、7だけしか入力できない状態になる)


    素直に、選択状態でDeleteキーを押し、内容をクリアすれば問題ありませんが、
    できれば、フォーカス取得(選択状態)したまま、上書したいのです。

    もし方法などありましたら教えて下さい。

    よろしくおねがいします。

    2006年5月22日 7:13

回答

  • うなまな様

    ご返答ありがとうございます。
    問題がわかりました!

    フォーカスの移動は、
    Tabキー、またはEnterキー(SelectNextControlメソッドを使用)での
    フォーカス移動を可能にしています。

    この「Enterキー移動」が問題でした。
    Tabキーで『MaskedTextBox』をフォーカス移動すれば問題は起きず、
    Enterキーで別項目へ移動、再度『MaskedTextBox』がフォーカスを取得した時に、この問題が発生しました。


    問題が発生したり、発生しなかったり、不安定な状態だった為、どっぷり悩んでいましたが、
    『コントロール間のフォーカスの移動はTABで行いました』という点で、気が付きました。

    ありがとうございました。

    2006年5月23日 2:06

すべての返信

  •  ちはるん さんからの引用

    他のコントロールから、『郵便番号』にフォーカスが移動した際、
    「123-4567」と入力されているテキストを
    選択されている、そのままの状態で「765-4321」と上書したいのですが、
    上手く動作しません。
    (165-4321となります。7が消えます)

    「765-4321」はキーボードより入力されるのですよね?

    GotFocusイベントでSelectAllで動きませんか?

     

    2006年5月22日 12:40
  • うなまな様

    ご返答ありがとうございます。

    「SelectAll」で、テスキト選択した後に、

    「765-4321」と上書き(キーボード)入力する際の問題です。(そのままの状態で上書きできない)

    2006年5月23日 0:44
  • テスト用にTextBox、MaskedTextBoxを配置したフォームを作成して、
    MaskedTextBoxのGotFocusイベントにSelectAllを記述したものでテスト
    したのですが、問題の現象は発生しませんでした。
    尚、コントロール間のフォーカスの移動はTABで行いました。

    現象が発生するプログラムでのフォーカス移動はどのようにされているのでしょうか?

    2006年5月23日 1:19
  • うなまな様

    ご返答ありがとうございます。
    問題がわかりました!

    フォーカスの移動は、
    Tabキー、またはEnterキー(SelectNextControlメソッドを使用)での
    フォーカス移動を可能にしています。

    この「Enterキー移動」が問題でした。
    Tabキーで『MaskedTextBox』をフォーカス移動すれば問題は起きず、
    Enterキーで別項目へ移動、再度『MaskedTextBox』がフォーカスを取得した時に、この問題が発生しました。


    問題が発生したり、発生しなかったり、不安定な状態だった為、どっぷり悩んでいましたが、
    『コントロール間のフォーカスの移動はTABで行いました』という点で、気が付きました。

    ありがとうございました。

    2006年5月23日 2:06