dunque, ho un form principale che a seconda dell' avverarsi di determinati eventi lancia due form secondari, ognuno dei quali alla sua apertura emette un suono.

il suono lo definisco a livello di classe (non so se si dice così, insomma, prima delle varie sub) perché la variabile deve essere riconosciuta sia dalla sub Form_Load che dalla Sub Button_Click che chiude il form

Dim snd As New SoundPlayer(Application.StartupPath & "/sound.wav")

lancio il suono con:

snd.PlayLooping()

e lo interrompo al Button_Click con:

snd.Stop()
snd.Dispose()
me.Hide


ora, finchè si apre (o chiudo) un solo dei due form (uno vale l' altro) va tutto bene, il suono parte e si interrompe anche 10.000 volte, quando viene lanciato invece l' altro form il suono parte la prima volta... una volta che chiudo il form non c' è più verso di sentire alcun suono.

ovviamente ho controllato: il codice snd.PlayLooping() viene regolarmente letto da entrambi i form alla loro apertura, solo non parte alcun suono.

inserita le routines in un Try... Catch non viene rilevato nessun errore

qualche idea?