2012-03-26 15 views
1

Ich versuche, alle Etiketten in Me.Controls zu sehen, und wenn ich benutze:VB.NET-Steuerelemente nicht sichtbar

For Each Control As Label In Me.Controls.OfType(Of Label)() 
    MsgBox(Control.Name.ToString) 
Next 

es zeigt nur die Etiketten, die nicht umbenannt haben. Mache ich hier etwas falsch?

+1

Was meinst du mit 'umbenannt'? – Steve

+0

Ihre Frage jetzt erneut lesen. Ihre Frage erwähnt nichts in Bezug auf Ihren Titel "Controls Not Visible". – LarsTech

Antwort

3

Der Code sieht in den meisten Fällen richtig aus, es sei denn, Sie haben Beschriftungen in anderen Containersteuerelementen wie Panels und GroupBoxen. In diesem Fall müssten Sie auch diese Container durchlaufen. Hier

ein Beispiel:

Dim allContainers As New Stack(Of Control) 
allContainers.Push(Me) 
While allContainers.Count > 0 
    For Each item As Control In allContainers.Pop.Controls 
    If item.Controls.Count > 0 Then 
     allContainers.Push(item) 
    End If 
    If TypeOf item Is Label Then 
     MessageBox.Show("Label.Name = " + item.Name) 
    End If 
    Next 
End While 
+0

Guter Fang, genau das war das Problem! Vielen Dank! – Matt