Form型のデータを引き渡すには? 追加の質問

解決


kanegon  2003-09-19 20:27:32  No: 108748

いつもお世話になります。

以前魔界の仮面弁士様に
Dim X as Form1
Set X=Forms.Add("Form1")

という形でFテキストで読んだForm名をFormオブジェクトの形に
変更する方法を教えてもらったのですが、この場合、
Setした時に、Form1のFormLoad処理が走ってしまいます。

SetしたときにFormLoadが走らない方法はないのでしょうか?
他によい方法があるのでしょうか?

いつも申し訳ないのですが、よろしくお願いいたします。


魔界の仮面弁士  2003-09-19 23:31:02  No: 108749

残念ながら、Formsコレクションを使う以上は無理ですね。
Loadされても問題無いようにコーディングを見直すか、もしくは、
Forms.Addせずに、Newでインスタンスを生成するように変更して下さい。

Formsコレクションは、現在ロードされているフォーム数を管理していますので、
「Formsコレクションに追加する」という事は、すなわち、
そのフォームがロードされた状態になっていなければならないわけです。

例えば、『Set F = New Form2』を実行しただけの時には、Form2では
Initializeイベントは発生するが、Loadイベントは起きない状態です。
この場合、Forms.Countの値は変化しません。
(その後で『Load F』を実行すると、Forms.Countが増加します)


kanegon  2003-09-20 21:09:39  No: 108750

魔界の仮面弁士 様

いつもありがとうございます。
今回はVBの中にFormを取り込んでありますので、
Select Case文である引数にsetで引き渡すことにしました。

これからもよろしくお願いいたします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加