Originariamente inviato da naighes
Riesumo questo thread in quanto ho altre precisazioni da chiedere!

Allora, ho un form (Form1.vb) che contiene un oggetto ListView (ListView1).

All'interno di questo Form è definita una sub che dovrebbe cancellare tutti gli elementi dalla lista:

codice:
Public Sub pulisciLista()
    ListView1.Items.Clear()
End Sub
Ora, se richiamo questa sub dal form stesso, non ci sono problemi.
Se la richiamo da un form secondario (Form2.vb) sono costretto a scrivere così:

codice:
' A quanto ho capito devo necessariamente creare un oggetto di riferimento a Form1...
Dim formPrincipale As New Form1
' Ed ecco che richiamo la sub:
formPrincipale.pulisciLista()
Solo che... non succede niente!
La lista continua a rimanere piena!
Ma perchè?

Grazie mille in anticipo.
Perchè scrivendo Dim formPrincipale As New Form1 hai semplicemente creato un nuovo Form1, che non ha nessuna relazione con il Form1 aperto inizialmente.
Occorre fare in modo che Form2 conosca l'instanza di Form1, in questo modo:
codice:
'in Form1
Dim f As New Form2
f.Owner = Me
f.ShowDialog()

'in Form2
Dim f As Form1
f = Me.Owner
f.pulisciLista()