Vámi uvedený kód bude fungovat pouze za podmínky, že v kolekci Controls nebude nic jiného než objekty typu C1.Win.C1List.C1Combo. Pokud tam budou i jiné objekty (kolekce Controls může obsahovat i další ovládací prvky odvozené od System.Windows.Forms.Control, cyklus ani neproběhne a nastane vyjímka System.InvalidCastException. Cyklus For Each počítá s tím, že kolekce kterou procházíte bude obsahovat stejné prvky. Řešením by bylo toto:
For Each control As Control In p.Controls
'Zkontrolovat, zda-li je prvek kolekce daného typu
If TypeOf control Is C1.Win.C1List.C1Combo Then
'Provést něco
End If
Next
A jinak k vašemu původnímu dotazu, počet prvků víte už od začátku:p.Controls.Count.
|