掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
同じフォームから複数の画面を立ち上げ、それぞれの画面での処理を識別するには? (ID:124767)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
横からごっそり失礼します。 ※とりあえず、配列じゃなくてコレクションにしてみてはどうでしょう… 動作の切り分けがあいまいに感じます。 現在は、 ・検索するFormと表示するFormが混ざっている。 という状況でしょうか? この場合、Formに対して次のようなインタフェイスを実装してみてはどうでしょう? ・"検索する"というメソッド(外部から呼ばれる) ・"検索した"というメソッド(イベントが発生した時に呼ばれる) こうすれば、ChildForm1が検索され且つ、表示されるFormとすることが出来ます。 土台が「カウント」や「添え字」では、操作対象があいまいになりがちです。 はっきりと「検索対象」と「表示対象」を取捨選択できるようにしておきましょう。 -インタフェイス例- 'ISearch.cls 'このインタフェイスを実装するFormは、 '自身を検索対象とすることが出来るようにする public sub SearchThis() end sub 'IShowFoundData.cls 'このインタフェイスを実装するFormは、 '自身に検索結果(どこからか引っ張ってくる)を表示できるようにする public sub ShowFoundData() end sub で、これらをChildForm1とかChildForm2などのImplementsしておきます。 その後、 ・"検索対象にするForm"をまとめるコレクション:cltSearch →ISearchを実装したFormをまとめます ・"表示対象にするForm"をまとめるコレクション:cltShowFoundData →IShowFoundDataを実装したFormをまとめます 上記の結果として、次のようなことをシミュレートします ・検索し、結果を表示する Public Sub Find_and_Show() Dim sch As ISearch Dim sw As IShowFoundData 'cltSearchに検索対象のFormをAddしていきます '... 'その後、cltSearchを処理していきます For Each sch In cltSearch Call sch.SearchThis Next 'その後、cltShowFoundDataを処理していきます For Each sw In cltShotFoundData Call sw.ShowFoundData Next End Sub ※…と、暴走気味に自分なりの考えを書いてしまいました(TT 長文失礼しました。 …英語ダメなのは気にしないで…(orz
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.