2017-05-26 18 views
0

ButtonをクリックしてListBoxにオーディオファイルを追加します。その後、OpenFileDialog(以下のコード)が動作します。追加されたファイルListBoxを使用して(以下のコード)再生します。私はbutton_playをクリックします。問題があります。 listBox1.Sorted = trueを使用して並べ替えのためにButtonをクリックしたとき。ソート後、再生すべきオーディオファイルは再生されません。ソート前にこの場所にあったオーディオファイルが再生されます。つまり、すべての曲に番号が付いていた場合、ソート後に名前のみが変更されていますが、番号は変更されていません。そしてクリックするとbutton_playが数字で演奏されます。私はこれが動作すると思いますListBoxの選択を変更します

private void button_add_Click(object sender, EventArgs e) 
     { 
      openFileDialog1.ShowDialog(); 
      label_load.Text = list_catalog.Items.Count.ToString(); 
     } 

private void openFileDialog1_FileOk(object sender, CancelEventArgs e) 
{ 
    foreach (String file in openFileDialog1.FileNames) 
    { 
     if (list_catalog.Items.Contains(Vars.GetFileName(file))) 
     { 
     } 
     else 
     { 
      Vars.Files.Add(file); 
      list_catalog.Items.Add(Vars.GetFileName(file)); 
      hello.Visible = false; 
     } 
    } 
} 

private void button_play_Click(object sender, EventArgs e) 
     { 

       string current = Vars.Files[list_catalog.SelectedIndex]; 
       Vars.CurrentTrackNumber = list_catalog.SelectedIndex; 
       BassLike.Play(current, BassLike.Volume); 
       label_time1.Text = TimeSpan.FromSeconds(BassLike.GetPosOfStream(BassLike.Stream)).ToString(); 
       label_time2.Text = TimeSpan.FromSeconds(BassLike.GetTimeOfStream(BassLike.Stream)).ToString(); 
       xrewind.Maximum = BassLike.GetTimeOfStream(BassLike.Stream); 
       xrewind.Value = BassLike.GetPosOfStream(BassLike.Stream); 
       timer1.Enabled = true; 

     } 
+0

あなたがリスト項目のインデックスとファイル名のインデックスをリンクする必要があります。いくつかの方法がありますが、パス名とソングのメタデータを持つクラスをプロパティとして作成し、このクラスでリストを作成します。並べ替えの際、クラスの任意のプロパティを使用できます。 – imqqmi

答えて

0

...

string current = list_catalog.SelectedItem as string; 
Vars.CurrentTrackNumber = Vars.Files.IndexOf(current); 
関連する問題