Buona Domenica a tutti,
ho risolto il problema del post precedente gestendo lì eccezione come nel codice che potete vedere sotto, lo riscrivo interamente così chi avesse la pazienza di costruirsi il form come ho descritto nel primo post di questo topic possa provare il programma semplicemente copiando e incollando questo secondo codice, per il resto la descrizione è identica a quella del primo post:
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 ApriToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ApriToolStripMenuItem.Click
OpenFileDialog1.ShowDialog()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Class1.A.Play()
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
La classe, per definire la variabile globale A, è stata sempre aggiunta come descritto nel primo post del topic, cioè:
Progetto >> Aggiungi classe...
e contiene lo stesso codice:
codice:
Public Class Class1
Public Shared A As New Microsoft.DirectX.AudioVideoPlayback.Audio(Form1.OpenFileDialog1.FileName)
End Class
Così il programma funge, cioè si puo scegliere un file audio dalla voce di menu File >> Apri, eseguirlo e modificarne il volume.
Adesso però sto cercando di scrivere il codice più elegantemente, perfavore, qualcuno mi puo correggere questo?
codice:
Public Class Form1
Public Class Class1
Public Shared A As New Microsoft.DirectX.AudioVideoPlayback.Audio(Form1.OpenFileDialog1.FileName)
End Class
Private Sub MyAppPrivate(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load, ApriToolStripMenuItem.Click, EsciToolStripMenuItem.Click, _
Button1.Click, TrackBar1.Scroll
TrackBar1.Value = (TrackBar1.Maximum + TrackBar1.Minimum) / 2
If sender.Equals(ApriToolStripMenuItem) Then
OpenFileDialog1.ShowDialog()
ElseIf sender.Equals(EsciToolStripMenuItem) Then
Application.Exit()
ElseIf sender.Equals(Button1) Then
Class1.A.Play()
ElseIf sender.Equals(TrackBar1) Then
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 If
End Sub
End Class
Adesso il form è sempre quello di prima, ma ho eliminato il file di nome Classe1.vb in quanto la classe l' ho definita nel Form1.
Perfavore datemi una mano, l' errore sarà banale, ma ai miei occhi è invisibile....
GRAZIE a tutti dell' attenzione.