フォーム1からフォーム2を呼び出したときロードするには?


たかし  2005-09-04 03:09:04  No: 124855

Private Sub Form1_Load() のコード内から show.form2でフォーム2を
開いたんですがform2で記述したPrivate Sub Form2_Load()のコードが
どうも実行されてないみたなんです。show命令では無理なんでしょうか?


ガッ  2005-09-04 05:36:26  No: 124856

まず環境を書いてください。

-VB6-
ウチの環境 VB6(SP6) で以下の手順をして再現しようとしましたが、
再現しませんでした。
・Form:Form1、Form:Form2をプロジェクトに追加
・Form1のコードに以下を追加
Private Sub Form_Load()
    Debug.Print "Form1 Form_Load()"
    Form2.Show
End Sub
・Form2のコードに以下を追加
Private Sub Form_Load()
    Debug.Print "Form2.Show()"
End Sub

結果:
Form1、Form2のインスタンスが表示され、
Form1のインスタンスが前面に表示された。
イミディエイトウィンドウに
Form1 Form_Load()
Form2.Show()
と表示された。


たかし  2005-09-04 05:53:28  No: 124857

ガッさんありがとうございます。VB6.0です。

勘違いしていました。上記のコード記述は正しいのですが
form1でクリックボタンを押したときにform2_load()が
実行されてないみたいなんです。申し訳ございません。
以下の記述です。

Private Sub Command1_Click()
      Form2.Show
End Sub

これを実行してもform2_load()内のコードが
実行されません。


通ってみた  2005-09-04 06:00:24  No: 124858

Form2_Load?そんなものは自動的に実行されませんよ

Form2内のForm_Loadは実行されますが


ガッ  2005-09-04 06:00:44  No: 124859

コマンドボタン:Command1を貼り付けて、
そのようにコードを書いて実験しましたが、
やはり(アタリマエですが)再現できません。

・同様の現象が発生するような具体的なコードと方法を教えてください。
  →この場合、プロジェクトを新規作成して、1から再現できるまでやってください。

※ちなみに、Loadイベントは
# フォームがメモリにロードされるときに発生します。
# スタートアップ フォームでは、Load ステートメントを実行したり、
# ロードされていないフォームのコントロールやプロパティを参照した結果として、
# アプリケーションが起動されたときに発生します。
  という文句がなされています。
  →もしかして、Form2は既にロードされていたりしていませんか?

ところで環境は…??


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

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






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