C# - obiekty tego samego typu, nadanie wartosci w petli

0

Witam!

Mam checkBox-ow okolo 40 na formie.... Jak sie odwolac do wybranych 15 czeckBoxow???

Maja one nieco inne nazwy, tzn. dostawca1checkBox, dostawca2checkBox, dostawca3checkBox,....dostawca15checkBox. Pozostale 25 C.B. ma inne nazwy (tzn. zupelnie inne, zwykle typu checkBoz1,....itd.).

W Delphi korzystalo sie z czegos takiego jak is

for i:=1 to 15 do begin

if (object is CheckBox) then ................

end;

Czy w C# jest podobnie?

DZEIKI!

K...

0

Tak, w C# istnieje operator is. Ale po co pytać o to na forum?

0

Chyba czytales tylko koncowke mojego posta, a nie od poczatku?

Nawet jesli jest is, to tylko bede mial typ obiektu. A jak dostac sie do obiektow o nazwie aaaXbbbbbb gdzie X to liczba ???

K...

0

Jeszcze dodam: Chce sie odwolac TYLKO do checkBoxow o nazwie aaaXbbbbbb, a nie interesuja mnie CB o nazwach checkBoxX - gdzie X to numer Check Boxa.

Podsumowujac chce miec dostep do wybranych CB (15 z okolo 40).

K...

0

Chodzi o refleksję?

0

Chyba nie, zajrzalem do CentrumXP.pl (przyklad ostatni) i raczej to nie jest to....
http://www.centrumxp.pl/dotNet/1152,2,20_Atrybuty_i_mechanizm_refleksji.aspx

Chyba po prostu pogrupuje ChcekBoxy GroupBoxami :) To chyba najprostszy sposob.

K...

0

Oczywiście, że to nie ma nic wspólnego z refleksją. Wystarczy w pętli przejść po kontrolkach formy i wybrać z nich te, które są CheckBoxami.

foreach (Control ctrl in this.Controls)
{
    CheckBox chk = ctrl as CheckBox;
    if (chk != null && chk.Name.StartsWith("dostawca"))
    {
        chk.BackColor = Color.Red;
    }
}

Użyłem as, bo użycie go i późniejsze sprawdzenie czy obiekt nie jest null, jest moim zdaniem wygodniejsze niż użycie is i rzutowanie.

Można też posłużyć się LINQ:

foreach (var chk in this.Controls.OfType<CheckBox>().Where(q => q.Name.StartsWith("dostawca")))
{
    chk.BackColor = Color.Red;
}

Ogólnie temat był wałkowany na forum do porzygu, na przyszłość radzę używać szukajki.

0

Pierwszy sposob chyba lepszy. Ten z LINQ ciekawy, ale nie do konca dla mnie zrozumialy.

Ogólnie temat był wałkowany na forum do porzygu, na przyszłość radzę używać szukajki.

Szukalem pod zlym haslem. Google pod "IS C#" wyrzuca nie to co szukalem.

Dzieki!

K...

0

Dziala fajnie! DZIEKI!

Tylko zauwazylem ze nadaje cechy (tu kolor czerwony) od konca (od ostatnio utworzonej kontrolki do pierwszej). Da sie zmienic jakos kolejnosc?

K...

0

Nie wiem jak to zauważyłeś, ale myślę, że można wstawić te wybrane kontrolki do nowej tablicy, posortować ją wg żądanej kolejności, a potem dopiero poustawiać wartości.

0

Ano zauwazylem, bo rozszerzylem twoj kod nieco, no i tez zrobilem podobny dla TextBox-ow i tu ewidentnie wrzuca mi elementy z tablicy w odwrotnej kolejnosci... Ale jakos sie z tym uporam, mysle ze ten pomysl z tablica nie jest zly.

K...

1 użytkowników online, w tym zalogowanych: 0, gości: 1