2016-07-11 11 views
0

VB zum ersten Mal versuchen und brauchen etwas Hilfe.VB2010 für x in y entspricht

Ich habe ein Listenfeld, das ich möchte die gleiche Aufgabe für jede der Lostbox-Elemente ausführen, wenn eine Schaltfläche geklickt wird. In Python würde ich verwenden for x in y:

Aber was mache ich für vb?

-Code bisher

Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click 

Dim mesg As String 
Dim pw As String 
Dim id As String 
For i As Integer = 0 To Me.ListBox2.Items.Count - 1 
id = Me.ListBox2.Items(i).ToString 
mesg = TextBox1.Text.ToString()   
pw = "S" 
MessageBox.Show(id & mesg & pw, "test") 
Exit For 

    Next 
End Sub 

Deshalb möchte ich, dass die Meldungsfeld für jedes Element in der Listbox einmal ok hat

Antwort

1

VB angeklickt hat viele Möglichkeiten, viele, um eine Schleife zu machen.

Scheint, Sie haben die For...Next Schleife Konstrukt angetroffen.

Python for x in y das klingt wie For Each...Next Schlaufen des VB:

Dim message As String = TextBox1.Text; 
Dim pw As String = "S"; 

Dim item As String 
For Each item In ListBox2.Items 
    MessageBox.Show item & message & pw, "test" 
Next 

Ich würde dringend empfehlen, lesen Sie VB Loop Structures on MSDN

+0

Dies funktioniert zu einem Dagree. Wenn ich 2 Elemente in meiner Liste habe, wird das erste Element zweimal angezeigt, obwohl der Wert unterschiedlich ist. – shaggs

+0

Sie sagen, Sie haben 2 Elemente und eine 'For Each'-Schleife macht 3 Iterationen ?? –

+0

Nein ich sage, ich habe 2 Artikel A & B. Ich habe die Liste in Zeichenfolge umgewandelt. Jetzt bekomme ich eine Message Box mit Text A. Sobald geschlossen, öffnet sich eine andere, aber mit Text A nicht Text B – shaggs

0

Sie werden für jede Schleife ein verwenden möchten. Es ist einfacher zu lesen und zu schreiben, und Sie brauchen sich keine Gedanken über die Verfolgung von Iterationen zu machen.

For Each listItem As ListBoxItem In ListBox2.Items 
     // do your work with each item here 
Next