• 締切済み

VB6 フォームの稼動

VB6.0です。OSはxp又はWindows2000、2003です。 work1のフォームからwork2のフォームを起動します。((1)) work2が起動中の時はwork1の操作はできません。 work2の作業が終了するとwork2は閉じます。((2)) この場合は・・・・・・ (1)work2.Show vbModal (2)Unload work2 となると思います。 実際にこれで正常に動いています。 しかし、滅多にありませんが、Unload後に勝手にwork2が動く場合があります。 debug.printでいろいろな所を表示しましたが勝手に動くwork2は最初(Fom Load)から動きます。Unloadはきいているようです。勝手に動いた経過を同じように動かしても同じ結果がでるとはかぎりません。 何かわかる方、教えて下さい。

みんなの回答

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

勝手にwork2が動くという場合、参照した場合にフォームインスタンスが自動で作られる、というVBの機能を疑われますね。 どこか、work1内か標準モジュール内か、クラス内かは判りませんが、work2.Titleのように参照した場合、work2.Title="hogehoge"と値を設定した場合など、work2.ShowやLoad等をしなくても、自動でインスタンスが作成されます。 work2.Text1.Text = "hogehoge"のように、内部コントロールを設定した場合でも同様です。 とりあえず、全文検索でwork2を探せば判るかも知れません。

GONBEBW
質問者

お礼

回答、ありがとうございます。 ダメでした。 要所、要所にdebug.printで動きを確認しましたがcloseした後に勝手に動く場合があります。(1~50回に1回ぐらいは動くのでこまります) とりあえず、フラグ等を設けて動く時に"on"、動かない時に"off"として、work2が動く時に"on"、動かない時(close状態)に"off"として、勝手にwork2が動いた時は強制終了(強制close)を行って難をしのぎます。 何かありましたら、ご指導の程、宜しくお願い致します。