Salve a tutti del forum! Sono nuovo e questa è la mia prima domanda
Sono riuscito a scrivere questo codice, che mi permette di aggiungere dinamicamente in un Form quante textbox sceglie l'utente grazie ad un NumericUpDown.
Dato che voglio utilizzare gli array di textbox creati anche nel resto del codice li ho dichiarati come globali, solo che ricevo un'eccezione a "vmateriali(i) = materiali", "Indice oltre i limiti della matrice". Cosa devo fare?

codice:
Dim materiali, quantità, prezzo, importo As New TextBox
    Dim n As Integer
    Dim vmateriali(n) As TextBox
    Dim vquantità(n) As TextBox
    Dim vprezzo(n) As TextBox
    Dim vimporto(n) As TextBox
    
    Private Sub Button1_Click


        '~~> NumericUpDown

        n = NumericUpDown1.Value
        NumericUpDown1.Minimum = n

        '~~> Dichiarazione valore ascissa delle txt

        'Codice inutile x la domanda

        '~~> For per inserire nel Form quante txt richieste dall'utente
        
        For i = 1 To n
            If n = 0 Then
                Exit For
            End If
            materiali = New TextBox
            quantità = New TextBox
            prezzo = New TextBox
            importo = New TextBox

            ' Formattazione delle textbox create

            materiali.Name = "txtMateriali" & i
            vmateriali(i) = materiali

            ' Formattazione delle textbox create
            quantità.Name = "txtQuantità" & i
            vquantità(i) = quantità

            ' Formattazione delle textbox create
            prezzo.Name = "txtPrezzo" & i
            vprezzo(i) = prezzo

            ' Formattazione delle textbox create
            importo.Name = "txtImporto" & i
            vimporto(i) = importo

            '~~> Aggiunta dei nuovi controlli
            Me.Controls.Add(materiali)
            Me.Controls.Add(quantità)
            Me.Controls.Add(prezzo)
            Me.Controls.Add(importo)

        Next 
    End Sub
Grazie per la disponibilità!