Private Sub Form1_Load() のコード内から show.form2でフォーム2を
開いたんですがform2で記述したPrivate Sub Form2_Load()のコードが
どうも実行されてないみたなんです。show命令では無理なんでしょうか?
まず環境を書いてください。
-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()
と表示された。
ガッさんありがとうございます。VB6.0です。
勘違いしていました。上記のコード記述は正しいのですが
form1でクリックボタンを押したときにform2_load()が
実行されてないみたいなんです。申し訳ございません。
以下の記述です。
Private Sub Command1_Click()
Form2.Show
End Sub
これを実行してもform2_load()内のコードが
実行されません。
Form2_Load?そんなものは自動的に実行されませんよ
Form2内のForm_Loadは実行されますが
コマンドボタン:Command1を貼り付けて、
そのようにコードを書いて実験しましたが、
やはり(アタリマエですが)再現できません。
・同様の現象が発生するような具体的なコードと方法を教えてください。
→この場合、プロジェクトを新規作成して、1から再現できるまでやってください。
※ちなみに、Loadイベントは
# フォームがメモリにロードされるときに発生します。
# スタートアップ フォームでは、Load ステートメントを実行したり、
# ロードされていないフォームのコントロールやプロパティを参照した結果として、
# アプリケーションが起動されたときに発生します。
という文句がなされています。
→もしかして、Form2は既にロードされていたりしていませんか?
ところで環境は…??
ツイート | ![]() |