タイトル | : GetForcus,LostForcusが同時に動いたり、動かなかったりで困っています |
記事No | : 11609 |
投稿日 | : 2008/03/03(Mon) 11:20 |
投稿者 | : やーむー |
やーむーと申します。 初めて投稿させていただきます。
タイトルの現象について原因の調査していますが、 行き詰まってしまいました。 分かる方がいらっしゃればご教授願いただけないでしょうか。
【環境】 Windows2000 VB6.0 SP6 コムラッド FD4
【やりたいこと】 日付入力用のテキストフィールドで表示時と入力時で表示を変更したい。 入力時:20080303 表示時;2008/03/03
【不具合現象】 テキストフィールドに対してフォーカスのIn/Outを高速(手動で行える程度)で 繰り返すと入力した値が壊れます。
【現在の実装イメージ】 【ゲットフォーカス】 入力桁数が10文字の場合("/"で編集されている場合)は以下の処理を行う。 テキストフィールドの日付から"/"を削除して表示する。 数字以外の文字を入力不可に設定する。(コムラッドのプロパティで設定) 入力最大桁数を8桁に設定する 例:2008/03/03 → 20080303 入力桁数が10文字以外の場合は何も処理しません。
【ロストフォーカス】 全桁(8文字)入力されていた場合は以下の処理を行う。 全ての文字を入力可能に設定する。(コムラッドのプロパティで設定) 入力最大桁数を10桁に設定する テキストフィールドの日付を"/"区切りで表示する。 例:20080303 → 2008/03/03 全桁(8桁)入力されていない場合は何も処理しません。
私の認識ではVB6.0はマルチスレッド的な動作はしないはずなのですが、 ログを入れて調査した結果では同時に動くパターンや、 ロストフォーカスのイベントが動かず、ゲットフォーカスのイベントのみ 連続で動くパターンなどがありました。
よろしくお願いします。
|