Listbox über controls löschen

conger890

Grünschnabel
hi,
ich möchte gern einige Listboxen und Textboxen über controls löschen.

Mein Versuchscode lautet unter Visual Basic 2010 express:

Private Sub BtNeu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtNeu.Click

For Each Subcontrol As Control In Me.Controls()
If Subcontrol.GetType.Name = GetType(TextBox).Name Then
Subcontrol.Text = ""
End If
If Subcontrol.GetType.Name = GetType(ListBox).Name Then
Subcontrol.Controls.Clear()
End If
Next

Der Teil mit den Textboxen arbeitet sauber, der Teil mit den Listboxen funktioniert nicht.

In Einzelschritten, wie

lstTeams1.Items.Clear()
lstTeams2.Items.Clear()
...
funktioniert es einwandfrei, ist aber nicht mein gewollter Weg. Hat jemand eine Idee, wie man unter me.controls oder so Listboxen leert?
 

DrSoong

Iss was, Doc!
Nachdem
Code:
lstTeams1.Items.Clear()
sauber arbeitet, wieso nimmst du die Syntax nicht auch in deine Schleife auf:
Code:
For Each Subcontrol As Control In Me.Controls()
	If Subcontrol.GetType.Name = GetType(TextBox).Name Then
		Subcontrol.Text = ""
	End If
	If Subcontrol.GetType.Name = GetType(ListBox).Name Then
		Subcontrol.Items.Clear()
	End If
Next


Der Doc!
 

Shakie

Erfahrenes Mitglied
Was bedeutet für dich "funktioniert nicht"?
Vielleicht musst du Subcontrol erst in eine ListBox konvertieren:
Code:
(DirectCast(Subcontrol, ListBox)).Items.Clear()
 

conger890

Grünschnabel
danke für deine Antwort, aber...
wenn ich .items.clear eingebe, kann ich 1. items nicht anwählen, dann natürlich auch nicht .Clear und 2. steht dann unter der ganzen Kombination eine blaue Schlangenlinie mit Cursor drauf steht dann: "items" ist kein Member von System.windows.Forms.control
conger890