HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Form-on lévő kontrollok elérése egyetlen tömbből


Példaprogram letöltése

8007 bájt

Egy Form-on számtalan kontroll lehet. Képzeljük el azt az esetet, mikor valamilyen okból az összes TextBox-ot le kell tiltani, vagyis az Enabled property-jén hamis értéket adni. Ekkor, ha sok TextBox van a Form-on, akkor elég fárasztó munka ezeket egyesével átállítani. Szerencsére van ennél egyszerűbb megoldás is, melynek az a további előnye, hogy még csak azt sem kell tudnunk, hogy aktuálisan hány TextBox van a Form-ra feltéve, hiszen ez a fejlesztés folyamán állandóan változhat.

Megoldást a Form-unk Controls property-je adja. Ennek van egy Item property-je, mely tartalmazza egyetlen tömbben az összes Form-on található kontrollt. Ezt felhasználva nincs más teendőnk, mint írni egy ciklust, amely végigmegy e tömb minden elemén.
    private void button1_Click(object sender, System.EventArgs e)
    {
      for (int i=0; i<this.Controls.Count-1; i++)
      {
A Form-on persze tetszőleges objektumok lehetnek, a feladatunk pedig csak a TextBox típusú kontrollok letiltása. Ehhez egy feltétellel vizsgálnunk kell, hogy az Item property aktuális eleme vajon mi is. Ezt úgy végezzük el, hogy a GetType-al lekérdezzük a típusát, majd a Name property felhasználásával vizsgáljuk, hogy a típusának megnevezése egyezik-e a TextBox szöveggel. Ha igen, akkor találtunk egy TextBox-ot.
        if (this.Controls[i].GetType().Name == "TextBox")
        {
Ebben az esetben már bármit megtehetünk a megtalált objektummal, amire csak szükségünk van a munkánk során.
          this.Controls[i].Enabled = false;
          (this.Controls[i] as TextBox).BackColor = SystemColors.Control;
        }          
      }
    }

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 505. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |