Počet kontrolov daného typu   zodpovězená otázka

VB.NET, Algoritmy

Dobré ráno, neviem či som ešte rozospatý, ale momentálne ma odpoveď na tento problém nenapadá.

Mám niečo takéto :

Private Sub AlignCenters(ByVal p As System.Windows.Forms.Panel)
        For Each c As C1.Win.C1List.C1Combo In p.Controls

        Next
    End Sub

Viem zistiť počet C1ComboBoxov v kolekcií p.Controls už pri prvom opakovaní cyklu?

Za nápady ďakujem.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

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.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback