Comumque il problema di fondo, oltre alla questione di codice, che come visto in un modo o nell' altro si risolve infatti almeno una delle 2 versioni dello stesso programma funge, è questo:
nella stesura di un listato in vb.net è più professionale utilizzzare gestori di eventi condivisi per i controlli che gestiscono eventi simili oppure no? o è indifferente? ( anche se indifferente non credo che sia) e... se si, cioè se è più professionale utilizzare i gestori di eventi è necessario utilizzare un unico gestore per tutti gli eventi che presentano gli stessi parametri?... come cercavo di fare con la seconda versione del programma?.. oppure si puo fare per categorie?... come per esempio nel codice sotto:
codice:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TrackBar1.Value = (TrackBar1.Maximum + TrackBar1.Minimum) / 2
End Sub
Private Sub ComandiMenu(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles EsciToolStripMenuItem.Click, _
ApriToolStripMenuItem.Click
If sender.Equals(EsciToolStripMenuItem) Then
Application.Exit()
ElseIf sender.Equals(ApriToolStripMenuItem) Then
OpenFileDialog1.ShowDialog()
End If
Label2.Text = OpenFileDialog1.FileName
End Sub
Private Sub Pulsanti(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click, _
Button2.Click, _
Button3.Click
If sender.Equals(Button1) Then
Class1.A.Open(OpenFileDialog1.FileName)
Class1.A.Play()
ElseIf sender.Equals(Button2) Then
Class1.A.Pause()
ElseIf sender.Equals(Button3) Then
Class1.A.Stop()
End If
End Sub
Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
TrackBar1.TickFrequency = 1
TrackBar1.SmallChange = 10
TrackBar1.LargeChange = 10
TrackBar1.Minimum = -3000
TrackBar1.Maximum = 0
If TrackBar1.Value <> TrackBar1.Minimum Then
Try
Class1.A.Volume = TrackBar1.Value
Catch ex As Exception
Class1.A.Volume = TrackBar1.Minimum
End Try
End If
Label1.Text = TrackBar1.Value
End Sub
End Class
?????????????????????????????????????????????????? ???????????????????
p.s. ahh nella seconda versione del programma, quello che funziona, se dopo si sceglie un altro file riproduce sempre quello di prima; per poter cambiare file da ascoltare aggiungere questo rigo
Class1.A.Open(OpenFileDialog1.FileName)
nell' evento ApriToolStripMenuItem
praticamente subito prima del rigo
Class1.A.Play()
Quest' ultima versione del programma funziona correttamente, almeno riguardo a quell' aspetto.
Devo ancora risolvere qualche piccolo problemino come pre esempio una eccezione che avviene se cerco di muovere la TrackBar prima di aver selezionato un file. Succerimenti a riguardo??
GRAZIE DELL' ATTENZIONE 
p.s. se volete provare quest' ultimo codice aggiungete una Labe2 nel form per visualizzare il percorso del file selezionato.