Ho provato e non serve comunque il codice è questo:
dichiri un array di oggetti senza specificare la dimensione
codice:
Dim formsArray() As Object
dopodiche nell'evento click del bottone o in qualsiasi altre parte di codice, quando vuoi che i form vengano caricati insomma:
codice:
Dim i As Integer
ReDim Preserve formsArray(CInt(nForms.Text))
Load Form2
For i = 0 To CInt(nForms.Text)
Set formsArray(i) = Form2
Next
For i = 0 To CInt(nForms.Text)
formsArray(i).Show
Next
cioè cos'è che fa: ridimensiona l'array con il valore inserito dall'utente nella textbox, carica in meoria il form2 che ti sei in precedenza costruito, e lo mette in tutti gli elementi dell'array dio Forms. a questo punto faccio scorrere di nuovo tutto l'array e provo a mostrare il form n volte, ma lo mostra una volta sola. Ciò probabilmente significa che hai n elementi che puntano al Form2, ma che in memoria fisicamente ne hai allocato uno solo.
Fai poi attenzione ad un particolare: quando usi la Redim, come in questo caso, definisce dinamicamente la dimensione dell'array. La parola chiave preserve in questo caso non serviva anche se appare. Era solo per dirti che se mai devi ridimensionare un array e mantenere però i dati che già ci sono memorizzati all'interno lo puopi fare proprio con la preserve.