- ベストアンサー
フォーカスがどこか行ってしまう
Windows2000、VB6.0、ActiveReport2.0で開発をしております。 メニュー画面から処理画面を起動(メニュー画面は開いたまま)し、 処理画面から実行押下にて実行処理&印刷をするプログラムになっています。 印刷はある条件を満たさなかった場合、帳票側でキャンセル処理(Me.Cancel)をしています。 処理が印刷が終わったら(実行処理していても)フォーカスを処理画面のテキストボックスに移動させるようにしています。しかし、印刷がキャンセル処理された場合にフォーカスがどこか行ってしまいます。 何か対処法などありますでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
キャンセル後にActiveReportをUnloadして TextBoxがあるフォームをActiveにしてから TextBox.SetFocusに出来ますか? フォームのActive化はフォームのShowメソッド 処理画面.Show 若しくはAppActivateステートメント AppActivate アプリケーション名 例えば Unload ActiveReport 処理画面.Show 処理画面.TextBox.SetFocus 若しくは Unload ActiveRreport AppActivate 処理画面(アプリ名を処理画面と仮定して) 処理画面.TextBox.SetFocus
その他の回答 (2)
印刷がキャンセルされた後にTextBoxにフォーカスを 移す事は可能ですか(TextBox.SetFocus) 帳票側でキャンセル処理後にSetFocus出来ますか。
補足
回答ありがとう御座います。 キャンセル処理後にTextBox.SetFocusと書いているのですが、全くフォーカスがTextBoxに移動しません・・・ というよりフォーム自体がアクティブになっていないです。 キャンセル処理後タスクにActiveReport1というのがなぜか残っていて、フォーカスが他に移動すると消えます。
- Kuppycat
- ベストアンサー率50% (109/216)
環境がないので試していませんが。 ・印刷の処理を始める前に、フォーカスをテキストボックスに移動しておく。 ・印刷処理時、フラグを立てておき、Form_Activeイベントで判定フォーカスを移動。 など、思いつきました。いかがでしょ?
お礼
>・印刷の処理を始める前に、フォーカスをテキストボックスに移動しておく。 >・印刷処理時、フラグを立てておき、Form_Activeイベントで判定フォーカスを移動。 どちらもうまくいかないです>< ActiveReportの残骸?みたいなのが残ってしまって、 フォーカスが移動しないです・・・
補足
再回答ありがとうございます。 unloadを書く場所が悪かった為、うまくunload出来ていなかったみたいです。 cancelの後にunload meと記述したらフォーカスが正常位置に移動するようになりました。 ありがとうございます^^