タイトル : Re: 別formの表示について 投稿日 : 2010/05/14(Fri) 20:14 投稿者 : K.J.K.
> 環境は VB6 SP6 WindowsXP SP3 です。 SPは最新のものを当てることを勧めます。 最近だと反応の無い投稿で http://hanatyan.sakura.ne.jp/vb60bbs/wforum.cgi?no=14668&reno=no&oya=14668&mode=msgview&page=0 がありますが、それとは無関係ですか? > formAでは > text入力中に コマンドボタンを押すと > formB.show 1 として foemBを表示させます。 > formAを Unload するときに unload formB としています。 > > formBでは > 入力処理後に > me.visible = False > formA.text1.SetFocus としています。 > > 子フォームを 一度起動中 何度でもformBを表示させ処理後には formA.text1 にフォーカスが戻りますが > いったん formAを Unload した後 再度formA を起動させ formBを 表示させると > 今度は 別なformA を起動させてしまいます。 Instance と Class の区別を意識しましょう。 切り分け方はいろいろありますが、例えばFormBの1つのメソッドに押し込める ならば、単純に、FormB 側に ' 戻り値の型などは適切に変更してください。 Friend Function ShowModal(ByVal Owner As FormA) As Boolean Call Me.Show(vbModal) ' ここで戻り値も含む各種処理 Call Me.Hide If Not (Owner Is Nothing) Then Call Owner.Text1.SetFocus End Function とでもするとか。複数のメソッドやイベントに分けてもいいですし。 FormA側で対応するのならば、FormB側ではFormAを弄らずに、 Call FormB.Show(vbModal) ' もし条件があるのならばここで分岐しておく。 Call Text1.SetFocus() とでもすればいいでしょう。普通はこちらでしょうね。 |