bugfix> vb.net > 投稿

imは古いpcからオルゴールを作ります。 再生ボタンを押すと、listbox1から選択した曲を取得して再生しようとしています。すべての曲にはジャンルのカテゴリがあります。フォーム1には、どのジャンルを選択するためのボタンがあり、クリックするとリストボックスのある別のフォームが開きます。たとえば、フォーム2(このフォームのジャンルは国)の場合、リストボックスは「C:/ newfiles/country /」で検索するように設定され、フォルダ内の曲はリストボックスに表示されます。 問題は、各曲のディレクトリを設定せずに、リストボックスから選択した曲を再生するプログラムを取得しようとすることです。

この方法でプログラムを作成しようとする理由は、ディレクトリから曲を追加/削除するだけで、プログラムからディレクトリを設定/削除する必要がないようにするためです。

コード: パブリッククラスForm2

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
    ' make a reference to a directory
    Dim di As New IO.DirectoryInfo("c:\newfiles\Country\")
    Dim diar1 As IO.FileInfo() = di.GetFiles()
    Dim dra As IO.FileInfo
    'list the names of all files in the specified directory
    For Each dra In diar1
        ListBox1.Items.Add(dra)
    Next
End Sub
Private Sub backButton1_Click(sender As Object, e As EventArgs) Handles backButton1.Click
    Me.Close()
    Form1.Show()
End Sub
Private Sub PlayButton1_Click(sender As Object, e As EventArgs) Handles PlayButton1.Click
 ?

End Sub
Private Function AxWindowsMediaPlayer1() As Object
    Throw New NotImplementedException
End Function

終了クラス

回答 1 件
  • 私のコメントから、ファイルパスの変数を宣言します。

    Private musicPath As String = "c:\newfiles\Country"
    
    

    次に、Pathクラスを使用して音楽パスとファイル名を組み合わせます。

    If ListBox1.SelectedIndex > -1 Then
      Dim s As String = IO.Combine(musicPath, ListBox1.SelectedItem.ToString)
      ' do something with s
    End If
    
    

あなたの答え