2009-08-10 7 views
0

J'ai une liste avec des éléments, et quand j'appuie sur un bouton, je voudrais passer à l'élément suivant. Je vais avoir un horrible péter au cerveau et ça fait un moment que ça dure.Cycle à travers la liste sur l'événement Click

for x = 0 to listbox1.items.count - 1 
    label1.text = listbox1.items.item(x) 
    x += 1 
next 

Probablement une erreur stupide de ma part :( Merci!

Répondre

1

Mettez le code dans la boucle dans le gestionnaire d'événements Click.

Private listItemIndex As Integer = 0 

Private Sub Button_Click(sender As Object, e As EventArgs) 
    If listItemIndex < ListBox1.Items.Length Then 
     Label1.Text = ListBox1.Items(listItemIndex).ToString() 
     listItemIndex += 1 
    End If 
End Sub 

Et, si vous avez besoin de plus en boucle sur tous les éléments comme dans votre code d'origine, préférez toujours la boucle For Each à la boucle indexée.Il est plus concis et plus direct et donc (sans doute) plus idiomatique.

For Each item In ListBox1.Items 
    Label1.Text = item.ToString() 
Next 

/EDIT: Faites attention à activer Option Strict partout dans votre projet, sauf s'il y a une raison impérieuse de ne pas le faire. Cela fait que le compilateur reconnaît beaucoup plus de problèmes potentiels pour vous. Cela signifie également que le code ci-dessus nécessite une distribution explicite (ou appelez ToString) car ListBox.Items renvoie Object s.

+0

+1 Après relecture je pense que c'est peut-être ce que l'OP est après. –

Questions connexes