Ma se distruggo un oggetto questo non dovrebbe sparire, visto che non esiste più? O c'è qualcosa che mi sfugge?
Sì, nel tuo caso devi porre la variabile del tipo "TextArea" (ossia:
vediserie) come "
Globale".
Inoltre, al fine di non avere un errore nel tentativo di ricreare un'altra
TextArea mediante quella variabile, dovrai porre la riga che crea la
TextArea all'interno della routine.
Quindi avremo:
Private vediserie As TextArea
....' quindi il resto del codice....
....' etc
Public Sub visualizza_Click()
Dim i As Short, Tmp As String
If visualizza.Checked = False
vediserie = New TextArea(Me) ' <-------------------
For i = 0 To serie.Max
Tmp &= Str$(serie[i]) & " "
Next
With vediserie
....
....
...' etc
....Inoltre, se vuoi evitare tutti quei
.Checked, puoi anche usare una righetta di controllo dell'esistenza della
TextArea, aggiungendovi solo il nome nelle sue proprietà:
Public Sub visualizza_Click()
Dim i As Short, Tmp As String
If IsNull(Me.Controls["vediserie"]) ' <-------------------
vediserie = New TextArea(Me)
For i = 0 To serie.Max
Tmp &= Str$(serie[i]) & " "
Next
With vediserie
.x = 50
.y = 100
.width = 200
.height = 85
.Name = "vediserie" ' <-------------------
...... ' etc
....... ' etc
Vanno eliminati ovviamente tutti i
visualizza.Checked = .