Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Imena kontrola u grupi

[es] :: .NET :: Imena kontrola u grupi

[ Pregleda: 2621 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Neznalica_sa_ugla
split

Član broj: 83282
Poruke: 390
*.xnet.hr.



Profil

icon Imena kontrola u grupi09.03.2007. u 23:42 - pre 177 meseci
Zelim dobiti imena kontola na Formi, to i nije neki problem this.controles[k].name i to je ok,
ali problem nastaje ,kadas e neke kontole nalaze u Grupbox kontroli
this.groupBox4.Controls.Add(this.button25);
this.groupBox4.Controls.Add(this.button24);
this.groupBox4.Controls.Add(this.button23);
this.groupBox4.Controls.Add(this.button22);
this.groupBox4.Controls.Add(this.button21);
i sada ne mogu prici controlama button 21- 25 nego mi vrati grupBox4 ,kako iscitati imena ovih kontrola ,
inace one moraju biti tako u grupi ,jer ih istovremeno cinim vidljivim ili ne vidljivim.
Hvala
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: Imena kontrola u grupi10.03.2007. u 09:08 - pre 177 meseci
Pozdrav.
Ako sam te dobro shvatio tebi treba ovako nesto
umesto
Code:
this.controls[k].name

ti stavi
Code:
this.groupBox4.Controls[k].Name

Otprilike treba da pristupis kolekciji kontrola tvog kontejnera - u ovom slucaju groupbox.
Pozdrav!
RTFM
 
Odgovor na temu

Neznalica_sa_ugla
split

Član broj: 83282
Poruke: 390
*.xnet.hr.



Profil

icon Re: Imena kontrola u grupi10.03.2007. u 21:59 - pre 177 meseci
Da tako nekako , ali sam se nadao da necu morati pisati dodatne uvjete za grupe kontrola , nego samo jednu for pelju .Ako ne ide drugacije onda kada naidje na grupo ponovo unitar napraviti petlju sa kontrole u grupi . Hvala
. Kako radim u Studio 2005 u Desingr-u su mi fine kontrole sa polu krugicima , a kada se program pokrene onda su ruzne i paravokutnik , Kako se mogu prikazivati ove nove . lepše ????
 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
*.sksyu.net.



+171 Profil

icon Re: Imena kontrola u grupi11.03.2007. u 21:30 - pre 177 meseci
Ne moras pisati za svaku grupu posebno, mozes i preko traversal algoritma kroz k-ary tree. Ovo ti je vise preporuka da krenes malo da proucavas neke osnovne algoritme i data structure (k-ary tree, binary tree, B tree... imas i ovde na ES-u u Art of programming).

Evo ti jedna od mene 'genericka' f-ja za kontrole

Code:

        public static IEnumerable<Control> GetAllControls(Control.ControlCollection baseCollection)
        {
            Control.ControlCollection currentCollection = baseCollection;
            Control currentControl = null;
            int i = 0;

            while (true)
            {                
                // uzima se kontrola na i poziciji u trenutnoj kolekciji
                currentControl = currentCollection[i];

                // salje kontrolu pozivnom kodu
                yield return currentControl;
                                
                if (currentControl.Controls.Count > 0)
                {
                    // preusmerava se trenutna kolekcija ka kolekciji kontrola tenutne kontrole :)
                    currentCollection = currentControl.Controls;
                    i = 0;
                    continue;
                }

                // ukoliko je pozicija (i) sa koje se ucitava kontrole poslednja 
            check:
                if (i == currentCollection.Count - 1)
                {
                    // prvo se proverava da li je ovo prva kolekcija kontrola (kolekcija od koje se krenulo)
                    // ukoliko jeste izlazi se iz petlje jer smo dosli do kraja kontrola
                    if (currentCollection == baseCollection)
                        break;

                    // ukoliko nije, potrebno je vratiti proslu kolekciju i proslu kontrolu                
                    currentCollection = currentControl.Parent.Parent.Controls;
                    currentControl = currentControl.Parent;

                    // zatim se nastavlja tamo gde se stalo u prosloj kolekciji
                    i = currentCollection.IndexOf(currentControl);
                    
                    // ali pre toga se mora proci jos jednom kroz proveru,
                    // jer ovo moze biti zadnja kontrola u kolekciji
                    goto check;                    
                }
                i++;
            }
        }


Koristis tako sto prosledis

Code:

foreach (Control c in GetAllControls(myForm.Controls))
...


Za ovaj drugi deo oko izgleda koji spominjes, mislim da mislis na Application.EnableVisualStyles().




 
Odgovor na temu

IDeveloper
Beograd

Član broj: 136606
Poruke: 25
*.informatika.com.



Profil

icon Re: Imena kontrola u grupi12.03.2007. u 07:42 - pre 177 meseci
Po meni je ovo jos lakse resenje:

Code:


List<string> ImeKontrole = new List<string>();

public void FindEachControl()
       {
           foreach (Control cc in this.Controls)
           {
               this.ImeKontrole.Add(cc.Name);

               if (cc.HasChildren)
                   this.FindChildControl(cc);
           }
       }

public void FindChildControl(Control par)
       {
           foreach (Control cc in par.Controls)
           {
                   this.ImeKontrole.Add(cc.Name);

               if (cc.HasChildren)
                   this.FindChildControl(cc);
           }
       }


Ako ne radis u .Net 2.0, umesto List<> koristi ArrayList

[Ovu poruku je menjao mmwc dana 15.03.2007. u 09:16 GMT+1]
 
Odgovor na temu

IDeveloper
Beograd

Član broj: 136606
Poruke: 25
*.informatika.com.



Profil

icon Re: Imena kontrola u grupi12.03.2007. u 07:43 - pre 177 meseci
Da....
Naravno sve sto treba je da pozoves FindEachControl()

[Ovu poruku je menjao mmwc dana 15.03.2007. u 09:18 GMT+1]
 
Odgovor na temu

[es] :: .NET :: Imena kontrola u grupi

[ Pregleda: 2621 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.