Arrays visualbasic-列表索引问题
所以我的问题是:我使用两个列表视图创建一个“自动存储塔”,双击其中一个,它会将信息添加到另一个列表视图。此外,它还将相关的mp3信息添加到一个数组中。Windows Media Player将使用此阵列背靠背播放歌曲 不知何故,我成功地将正确的信息传输到第二个listview(lvTrackList)中,但在双击第二行或第三行信息后,第一次双击的相同信息会通过If语句返回。我的阵列开始间隔曲目(例如,在添加三首歌曲后,阵列显示前两个点为0,第三个槽为选定的第一首歌曲)。。。请帮忙Arrays visualbasic-列表索引问题,arrays,vb.net,listview,Arrays,Vb.net,Listview,所以我的问题是:我使用两个列表视图创建一个“自动存储塔”,双击其中一个,它会将信息添加到另一个列表视图。此外,它还将相关的mp3信息添加到一个数组中。Windows Media Player将使用此阵列背靠背播放歌曲 不知何故,我成功地将正确的信息传输到第二个listview(lvTrackList)中,但在双击第二行或第三行信息后,第一次双击的相同信息会通过If语句返回。我的阵列开始间隔曲目(例如,在添加三首歌曲后,阵列显示前两个点为0,第三个槽为选定的第一首歌曲)。。。请帮忙
Dim songsArray() As String = {"FurryLewis-BillyLyonsAndStackolee.Mp3", "GusCannon-PoorBoyALongWayFromHome.Mp3", "JoeMcCoy-PileDriverBlues.Mp3", "LouisArmstrong-ComeBack,SweetPapa.mp3"}
Dim queueArray() As String 'Queue for Playlist, containing songnames
Dim queueCount As Integer = 0 'Count for queueArray
'DoubleClick track playlist to add selected track to Queue
Private Sub lvTrackList_DoubleClick(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles lvTrackList.DoubleClick
intCurrentSong = lvTrackList.SelectedIndices(0)
lvQueueList.Items.Add(lvTrackList.Items(lvTrackList.SelectedIndices(0)).Clone())
'determine applicable mp3 file
currentSong = lvQueueList.Items(0).Text
If currentSong = "Billy Lyons and Stackolee" Then
newSong = songsArray(0)
ElseIf currentSong = "Gus Cannon" Then
newSong = songsArray(1)
ElseIf currentSong = "Kansas Joe McCoy" Then
newSong = songsArray(2)
ElseIf currentSong = "Louis Armstrong" Then
newSong = songsArray(3)
End If
'add file to queueArray for appending to WindowsMediaPlayer playlist
ReDim queueArray(queueCount)
queueArray(queueCount) = newSong
queueCount += 1
End Sub
首先,除非有特定的理由使用数组编写代码,否则我建议创建一个对象来保存歌曲标题和mp3路径,然后将这些项目加载到列表中 为了有希望地回答您的问题,这句话:
currentSong = lvQueueList.Items(0).Text
始终抓取第二个列表视图中的第一项,因此它将始终将该歌曲的mp3加载到currentSong变量中
要从不显示任何内容中删除queueArray项,您不能简单地重新分配数组。您需要重拨以保留阵列,然后将其添加到阵列的末尾。这样,您可以将当前项保留在数组中,只需添加到末尾
ReDim Preserve queueArray(UBound(queueArray) + 1)
queueArray(queueCount) = newSong
queueCount += 1
请至少显示
songsArray
、queueArray
和queueCount
的定义。显然,您必须摆脱检查“currentSong”的糟糕代码。那只会增加什么。您添加的项不是lvQueueList。项(0)是在末尾添加的。已编辑。。。我已经添加了songsArray之类的信息,但是正如您所看到的,queueArray和queueCount并没有什么特别之处。