我正在尝试使用 ListBox 播放列表构建一个简单的音乐播放器。将音频文件添加到播放列表时,它首先用文件名填充列表框,然后(在单独的线程上)提取 ID3 数据并用正确的艺术家 - 标题信息(很像 Winamp)覆盖文件名。
但是当 ListBox 正在更新时,它是不可滚动的,因为它总是在每个项目覆盖时跳转到顶部。
有什么办法可以防止这种情况吗?
编辑:
代码:
public Form1()
{
//Some initialization code omitted here
BindingList<TAG_INFO> trackList = new BindingList<TAG_INFO>();
// The Playlist
this.playlist = new System.Windows.Forms.ListBox();
this.playlist.Location = new System.Drawing.Point(12, 12);
this.playlist.Name = "playlist";
this.playlist.Size = new System.Drawing.Size(229, 316);
this.playlist.DataSource = trackList;
}
private void playlist_add_Click(object sender, EventArgs e)
{
//Initialize OpenFileDialog
OpenFileDialog opd = new OpenFileDialog();
opd.Filter = "Music (*.WAV; *.MP3; *.FLAC)|*.WAV;*.MP3;*.FLAC|All files (*.*)|*.*";
opd.Title = "Select Music";
opd.Multiselect = true; …Run Code Online (Sandbox Code Playgroud)