... non hai dichiarato, né istanziato la classe
FMid nella classe principale FMain.
Poi credo si debbano togliere tutte quelle dichiarazioni "
Static"...
...forse dovresti anche istanziare il modello dei Form nella classe FMdi...
...credo anche mettere Public MyForm As
New Object[]...
...MyForm.add = ...non va bene...
Ho fatto una prova da me, ma non so se è proprio quello che vuoi ottenere tu. Creo un array (che può teoricamente anche essere illimitato) di Form, e poi li mostro.
In
FMain.Class:
' dichiaro la classe secondaria
Public seconda As CSeconda
Public Sub Form_Open()
' istanzio la classe secondaria
seconda = New CSeconda As "seconda"
End
Public Sub Button1_Click()
' vado a creare e riempire l'array:
' ogni clic è un Form in più a disposizione:
seconda.creaform()
End
Public Sub Button2_Click()
' mostro i Form dell'array uno ad uno ad ogni clic:
seconda.verifica()
End
Public Sub Button3_Click()
' poi sadicamente li distruggo tutti, tranne il form principale:
seconda.formDelendaSunt()
End
Nella classe secondaria
CSeconda.Class:
Private obja As New Object[]
Private k As Integer
Private j As Byte
Public Sub creaform()
Dim fo As Form
' istanzio un Form:
fo = New Form As "fo"
' lo aggiungo ad un elemento dell'array:
obja.Add(fo)
End
Public Sub verifica()
Dim box As New Form
' evito di superare il numero di elementi dell'array:
If j > obja.max Then Return
k = k + 30
box = obja[j]
' vado a mostrare di fatto un form:
With box
.W = 150
.H = 150
.X = k
.Y = k
.Show
.TopOnly = True
End With
Inc j
End
Public Sub formDelendaSunt()
Dim formelle As Form
' i form creati vengono distrutti immediatamente:
For Each formelle In obja
formelle.Close
Next
Print "Form secondari tutti kaput ! "
End