Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet c#-ban egy...

Hogyan lehet c#-ban egy változót komponens nevekre való hivatkozásra használni?

Figyelt kérdés

eddig switch-et használtam, ahol felsoroltam, az összes a változónak adható nevet, és utána a hozzá tartozó parancsot. példa:

switch (combox_komplista.Text)

{

case "label1":

{ label1.Top = Convert.ToInt32(numX.Value); }

break;

case "label2":

{ label2.Top = Convert.ToInt32(numX.Value); }

break;

case "label3":

{ label3.Top = Convert.ToInt32(numX.Value); }

break;

case "label4":

{ label4.Top = Convert.ToInt32(numX.Value); }

break;

case "label5":

{ label5.Top = Convert.ToInt32(numX.Value); }

break;

ezzel az a baj, hogy nagyon sokáig tart, főleg ha több dologra, vagy több komponenssel akarom használni. valami olyasmit keresek, hogy bele tudom tölteni a változó értékébe a komponens nevét, majd azt úgy használni mintha nem a változó lenne a kódban, hanem az értékébe betöltött komponens neve. példa:

valtozo = button1.Name;

valtozo.Top = 12;


ilyenkor a komponensem (a gomb) vertikális helye változzon meg.



2014. nov. 10. 14:28
 1/3 anonim ***** válasza:

Így nem fog menni, de ha mondjuk valamilyen gyűjteményben vannak pl a gombok, akkor egy foreach segítségével végig tudsz menni rajta, és tudod ellenőrizni, hogy ugyanaz-e a név.

Valami olyasmi, hogy:

foreach (Button b in buttons)

{

__if (b.Name == selectedName)

__{

____b.Text = givenValue;

__}

}

2014. nov. 10. 14:39
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:
Tedd be inkább egy Dictionary-be.
2014. nov. 10. 14:47
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:

Jobb megoldás:

Dictionary<string, Label> labels = new Dictionary<string, Label>() {

{"label1", label1},

/*...*/

);

labels[combobox_komplista.Text].Top = Convert.ToInt32(numX.Value);


Rosszabb megoldás:

reflection használata

2014. nov. 11. 02:00
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!