

Jak se odkázat na button, když mám jeho jméno ve stringu (C#)
Zdravim, dělám si prográmek a narazil jsem na malý problém, nevím jak se odkázat na jednotlivé buttony pomocí jména, které mám uložené ve stringu.
Vypotil jsem ze sebe kód, viz níže. Bohužel nefunguje podle mých představ, abych byl přesnější nefunguje vůbec.
Button stisknutéTlačítko = (Button)sender;
btn1 = stisknutéTlačítko.Name;
Control tl1 = this.Controls[btn1];
tl1.ForeColor = Color.Black;
tl1.BackgroundImage = Properties.Resources.Sova;
To v C# sa polia indexuju podla stringov?
Controls[btn1] ??? WTF
http://stackoverflow.com/questions/3898588/find-co ntrol-by-name-from-windows-forms-controls
P.S. a uz ti Wikan napisal ze jak sa to robi spravne. Nemas tam vobec pracovat s nazvom.
Čerpal jsem odtud:
http://stackoverflow.com/questions/12969453/how-to -access-a-button-using-its-name-as-a-string-in-a-f or-loop
for(int i =1;i<25;i++)
{
this.Controls["bt"+ i.ToString()].Enable = True;
}
Dobre ked to ma ten class implementovane tak sa to da ale vobec to robit nepotrebujes, vobec nepracuj s nazvom.
V tej kolekcii this.Controls ten tvoj control trebars ani vobec nemusi byt.
Pokud je na tom formu, tak tam být musí.
Moze byt v podforme. Kdesi som to teraz videl ked som googlil ten podivny collection, ze to tam byt nemusi. (P.S. ale to len tak na okraj, ja zatial vobec nechapem ze co vlastne chce :D)
Čemu říkáš podform? MDI Child? Tak to tam nejspíš opravdu nebude, ale to bych ani nebral jako obsah hlavního formu.
Ja neviem vidis co tam ma za maglajz, a ziadny test na chyby / error navratove hodnoty / excepsny, dufam ze to robi len pre seba pre zabavu.
Omlouvám se, kód, který jsem napsal funguje, ale měl jsem pod tlačítky panel, na který jsem už dávno zapomněl (vrátil jsem se k tomu projektu po dlouhé době).
Stačilo změnit this. na panel1.
Děkuji za rady, zamykám.
Sice funguje, ale děláš to zbytečně složitě.