Io ci sono arrivato con una soluzione diversa da quella di Eziogsv anche se devo ancora approfondire i "concetti"...quindi posto il tuo codice con le "modifiche" per farlo funzionare ed evito spiegazioni su Delegate e Invoke per non scrivere probabili razzateOriginariamente inviato da Veronica80
niente non ne vengo a capo! E' davvero molto complessa la questione![]()
...
Oltre al link a msdn postato da Oregon puoi dare una lettura a questo:codice:'modifica Delegate Sub panel1_add(ByVal tbox As TextBox) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load mioBGW.RunWorkerAsync() End Sub Private Sub mioBGW_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles mioBGW.DoWork Try Dim y As Integer = 3 Dim max As Integer = 500 For i = 1 To max Dim mioTxt As New TextBox mioTxt.Location = New System.Drawing.Point(3, y) mioTxt.Name = "TextBox" & i mioTxt.Text = mioTxt.Name mioTxt.Size = New System.Drawing.Size(224, 20) mioTxt.TabIndex = i mioTxt.Visible = True y += 25 'modifica panel1_add_tbox_deleg(mioTxt) Next Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Errore in " & ex.Source) mioBGW.CancelAsync() End Try End Sub Private Sub mioBGW_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles mioBGW.RunWorkerCompleted MsgBox("FINITO!", MsgBoxStyle.Information, "Conferma") End Sub 'modifica Private Sub panel1_add_tbox(ByVal tbox As TextBox) Panel1.Controls.Add(tbox) End Sub 'modifica Private Sub panel1_add_tbox_deleg(ByVal tbox As TextBox) Dim a As New panel1_add(AddressOf panel1_add_tbox) Invoke(a, New Object() {tbox}) End Sub
http://msdn.microsoft.com/it-it/library/ms172879.aspx
e le relative procedure per provare a chiarirti le idee.
![]()

...
Rispondi quotando