掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
同じフォームから複数の画面を立ち上げ、それぞれの画面での処理を識別するには? (ID:124771)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>>標準モジュールの oForm に子フォームの参照を入れてますか? >勉強不足で申し訳ありませんが、参照を入れるとはどういう事でしょうか。 単純に Set oForm(nCnt) = New Form1 の事です。変数には『値型』と『参照型』があります。Form を型とする 変数の場合『参照型』になります。メモリ上の実体(Form のインスタンス) を参照するアドレスが格納されます。親フォームでちゃんと全ての子フォーム の参照を変数にセットできてますか?ってのが聞きたかったのです。 なんか関係ない所でハマってる気がするんですが…。 >だから、例えば3枚画面を立ち上げた時にChildForm1(1)、 >ChildForm1(2)が動かないのかと思っていたのですが。 思っているだけじゃなくテストして確認して下さい。 [VB6.0] '/// MainForm1(MDIForm1.frm) Option Explicit Private Sub MDIForm_Load() nCnt = -1 Me.Caption = "MainForm1" End Sub Private Sub mnuAdd_Click() nCnt = nCnt + 1 ReDim Preserve oForm(nCnt) Set oForm(nCnt) = New Form1 With oForm(nCnt) .Caption = "ChildForm" & CStr(nCnt) .Show End With End Sub Private Sub mnuRun1_Click() If nCnt < 0 Then MsgBox "Form1 が1つも開かれていません。" Exit Sub End If oForm(0).MsgShow End Sub Private Sub mnuRun2_Click() If nCnt < 1 Then MsgBox "Form1 をもう1つ開いて下さい。" Exit Sub End If oForm(1).MsgShow End Sub '/// Form1(Form1.frm) Option Explicit Public Sub MsgShow() MsgBox Me.Caption End Sub '/// Module1(Module1.bas) Option Explicit Public oForm() As Form1 Public nCnt As Long
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.