VB6について質問です。現在の状態を適切な状態に修正したいと考えています(以下参照)。

適切な状態にする場合はForm1から呼び出したForm2の処理が進んだときに、
Form1に進捗を通知するような仕組みを作らなくてはいけませんが、
通知する方法が解りません。良い方法などありましたら教えていただきたく宜しくお願いします。


現在の状態:Form1からForm2(Visible=true)のクラスを呼び出し処理を実行する。
   進捗表示はForm2
適切な状態:Form1からForm2(Visible=false)のクラスを呼び出し処理を実行する。
   進捗表示はForm1

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2010/05/17 14:31:05
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント100pt

Form1のラベル等を Form2で 更新して 表示しなおしてあげればいいだけかと思いますが・・・。

ま、オブジェクト指向で作るならば Form1に 進捗を受け取るメソッドを作成して

Form2から そのメソッドを 呼べばいいと思います。


http://www005.upp.so-net.ne.jp/h-masuda/vb6/vb6first/forms050.ht...

その他の回答1件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198ここでベストアンサー

ポイント100pt

Form1のラベル等を Form2で 更新して 表示しなおしてあげればいいだけかと思いますが・・・。

ま、オブジェクト指向で作るならば Form1に 進捗を受け取るメソッドを作成して

Form2から そのメソッドを 呼べばいいと思います。


http://www005.upp.so-net.ne.jp/h-masuda/vb6/vb6first/forms050.ht...

id:heke2mee No.2

回答回数162ベストアンサー獲得回数43

ポイント100pt

Form2の処理を非表示でForm1から実行したいということは

Form2の中に共通で使用したいビジネスロジックがあると言う事だと思います。


共通部分をクラスとして抜き出し、進捗をイベントとして通知するのがいいのではないでしょうか


イベントの作成方法

http://homepage1.nifty.com/rucio/main/shokyu/jugyou29.htm



今後、プログラムを修正する可能性が殆ど無い場合は、直接呼び出す処理のほうが

修正箇所が少ないので楽かもしれません。


ただForm2にForm1のラベルやメソッドを渡すように記述してしまうと、

Form2とForm1の依存関係が強くなります。

また今後Form3からForm2の同じ処理を実行したい場合に、Form2の中に

Form3のラベルやメソッドを呼ぶ処理を記述しないといけなくなります。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません