Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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. :-D

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;
Předmět Autor Datum
A proč tak složitě? Button stisknutéTlačítko = (Button)sender; stisknutéTlačítko.ForeColor = Color.…
Wikan 25.05.2016 20:31
Wikan
Teď mě napadá, že jsem to měl upřesnit hned na začátku. Mám 8x8 tlačítek a po kliknutí se vždy uloží…
001 25.05.2016 20:37
001
To na mé odpovědi ale nic nemění. Proč si do té proměnné neukládáš rovnou referenci na tlačítko?
Wikan 25.05.2016 20:40
Wikan
Akorát jsem ještě chtěl dopsat, že všechny tlačítka musí mít stejný Event "Click"(u všech např. btn_…
001 25.05.2016 20:45
001
V evente by si mal ako vstup dostat aj referenciu na to odkial ten event prisiel. A namiesto nazvov…
MM.. 25.05.2016 20:47
MM..
Pokud se to má provést až po třetím stisknutí, tak tam stejně nejdřív zvyšuješ nějaké počítadlo a po…
Wikan 25.05.2016 20:47
Wikan
Ano, zvyšuji.
001 25.05.2016 20:57
001
No tak nevím, kde vidíš problém.
Wikan 25.05.2016 20:58
Wikan
To v C# sa polia indexuju podla stringov? Controls[btn1] ??? WTF http://stackoverflow.com/questions…
MM.. 25.05.2016 20:51
MM..
Nejen pole mají indexery.
Wikan 25.05.2016 20:54
Wikan
Čerpal jsem odtud: http://stackoverflow.com/questions/12969453/how-to -access-a-button-using-its-na…
001 25.05.2016 20:55
001
Dobre ked to ma ten class implementovane tak sa to da ale vobec to robit nepotrebujes, vobec nepracu…
MM.. 25.05.2016 20:58
MM..
Pokud je na tom formu, tak tam být musí.
Wikan 25.05.2016 20:59
Wikan
Moze byt v podforme. Kdesi som to teraz videl ked som googlil ten podivny collection, ze to tam byt…
MM.. 25.05.2016 21:00
MM..
Čemu říkáš podform? MDI Child? Tak to tam nejspíš opravdu nebude, ale to bych ani nebral jako obsah…
Wikan 25.05.2016 21:07
Wikan
Ja neviem vidis co tam ma za maglajz, a ziadny test na chyby / error navratove hodnoty / excepsny, d… poslední
MM.. 25.05.2016 21:14
MM..
Omlouvám se, kód, který jsem napsal funguje, ale měl jsem pod tlačítky panel, na který jsem už dávno…
001 25.05.2016 21:05
001
Sice funguje, ale děláš to zbytečně složitě.
Wikan 25.05.2016 21:08
Wikan

Akorát jsem ještě chtěl dopsat, že všechny tlačítka musí mít stejný Event "Click"(u všech např. btn_klik).
Možná jen něco špatně chápu, ale myslím, že za této situace tento kód nefunguje, vždy po kliknutí se přepíše "stisknutéTlačítko", jestli se mýlím tak se omlouvám.

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.

Button stisknutéTlačítko = (Button)sender;
btn1 = stisknutéTlačítko.Name;
Control tl1 = panel1.Controls[btn1];
tl1.ForeColor = Color.Black;
tl1.BackgroundImage = Properties.Resources.Sova;

Děkuji za rady, zamykám.

Zpět do poradny Odpovědět na původní otázku Nahoru