いつもお世話になっております。
ご存知の方がいらっしゃいましたらご教授ください。
開発環境
.NET2005
Winアプリ
親画面から子画面をモーダルで呼び、
子画面を閉じる時に親画面のフォームロード内の処理を呼びたいのですが
どのようにすればよろしいのでしょうか?
ちなみにこの子画面は複数の親画面から呼び出されます。
よろしくお願い致します。
>親画面のフォームロード内の処理を呼びたいのですが
この意味がわからない。
どこで詰まっているのか分からないので、とりあえず言語のヘルプを見てみては?("処理を呼ぶ"というコードの書き方など)
やりたい内容のイメージがつかめませんが。。。
親の参照アドレスを持っていればできそうです。
が、子が親の操作をするという設計は、親子関係を
壊していますので、回答は付けません。
代替案として、モーダルなので、制御が親フォームに
戻ってきた時に、親フォームが自分で必要な処理を
実行するのでよいのでは?
>子画面を閉じる時に親画面のフォームロード内の処理を呼びたい
本当に親をロード(インスタンスを生成)しなければ
ならないのであれば、それはもはや親でさえ
ありません。
フォームロード内の初期化処理等を実行したいと
言うのであれば、別関数にして、親のフォームロード
イベント以外からでも呼べるようにしてください。
お世話になっております。
ご返答ありがとうございます。
説明下手で申し訳ありません。
やりたかったことは、あるコンボボックス(商品名コンボ)を持つ親画面から
子画面(商品マスタ登録画面)を呼び出します。
子画面で登録後、子画面を閉じると
親画面のフォームロードが走らないため商品コンボに子画面で登録したデータが
反映されないということで悩んでおりました。
そこで解決策①としてフォームロード内の処理を別ルーチン(Public)にして
子画面終了時に呼び出したのですが何故か親画面コンボにデータが反映されず
行き詰まってしまい掲示板に書き込みをさせて頂きました。
ですが無事に解決しました。
複雑に考えすぎて混乱しておりましたが単純なことでした・・。すみません。↓
'子画面を呼ぶボタン押下時
Private Sub EntryCmd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EntryCmd.Click
子画面.ShowDialog()
'****子画面を閉じるとここに戻ってくる
Call フォームロード内処理()
end sub
でも解決策①だとなんでダメなんだろ・・。
ご返答頂いたみなさん、ありがとうございました。
申し訳ありませんでした。
>でも解決策1だとなんでダメなんだろ・・。
[CavalierLab クラスモジュール講座]
http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/index.html
クラスとインスタンスの違いを理解してください。
実体の無い(メモリ上に存在しない)メソッドを
呼ぼうとしていませんか?
もしくは、違うインスタンスに命令していませんか?
特攻隊長まるるう様
ありがとうございます。
ご指摘どおりクラスやインスタンスをきちんと理解できておりません。
>実体の無い(メモリ上に存在しない)メソッドを
>呼ぼうとしていませんか?
>もしくは、違うインスタンスに命令していませんか?
↑の質問には知識が足りず答えることができない有様です・・。
教えて頂いたサイトを読み、勉強してみます。
ご教授本当にありがとうございました。
ツイート | ![]() |