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

c# - pretvaranje stringa u ime objekta

[es] :: .NET :: c# - pretvaranje stringa u ime objekta

[ Pregleda: 1725 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-3.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon c# - pretvaranje stringa u ime objekta07.06.2008. u 18:57 - pre 160 meseci
Ćao!

Početnik sam u C# i zanima me jedna stvar! Imam jednu formu (Form1) tri labela (label1, label2 i label3) tekst box (textBox1) i dugme (button1):



Program radi sledeću svar, kada unesem u txrBox1 broj 1 i pritisnem dugme izbacimi na label1 string "POZZ", kada unesem u txrBox1 broj 2 i pritisnem dugme izbacimi na label2 string "POZZ" i kada unesem u txrBox1 broj 3 i pritisnem dugme izbacimi na label3 string "POZZ".
Znači za ovo imamo sledeći kod:
Code:

private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "";
            label2.Text = "";
            label3.Text = "";
            int tmp = Convert.ToInt32(textBox1.Text);

            switch (tmp)
            {
                case 1:
                    label1.Text = "POZZ";
                    break;
                case 2:
                    label2.Text = "POZZ";
                    break;
                case 3:
                    label3.Text = "POZZ";
                    break;
            }
        }


E sad mislim da se primer može uprostiti na sledeći način:
Code:

private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "";
            label2.Text = "";
            label3.Text = "";
            int tmp = Convert.ToInt32(textBox1.Text);


            string lbl = label1 + textBox1.Text;
            lbl.Text = "POZZ";

        }

ili kreiranjem niza labelova pa da bude:
Code:
label[tmp].Text = "POZZ";

Ja ne znam da izvedem ni jedno ni drugo pa ako bi neko mogao da me uputi na neki link ili da mi ukratko objasni kako da rešim ovakve probleme.

Unapred hvala!
 
Odgovor na temu

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-3.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon Re: c# - pretvaranje stringa u ime objekta07.06.2008. u 19:27 - pre 160 meseci
Rešio sam problem na sledeći način:
Code:
private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "";
            label2.Text = "";
            label3.Text = "";
            label4.Text = "";
            int tmp = Convert.ToInt32(textBox1.Text);

            

            findMyLabel(tmp).Text = "POZZ";

        }

        private Label findMyLabel(int pnIndex)
        {
            Label loTheLabel = null;

            foreach (object loObj in this.Controls)
            {
                if (loObj is Label)
                {
                    if (((Label)loObj).Name == String.Format("label{0}", pnIndex))
                    {
                        loTheLabel = (Label)loObj;
                        break;
                    }
                }
            }

            return loTheLabel;
        }


Kao što vidite napravio sam funkciju koja prima index i vraća label koji se završava sa tim indeksom ako je format labela "labelXX" gde je XX broj. Naravno ako neko ima još neko bolje rešenje nek javi.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6021



+4620 Profil

icon Re: c# - pretvaranje stringa u ime objekta07.06.2008. u 21:17 - pre 160 meseci
Ako su ti sve labele direktno na formi (nisu u nekim panelima i slicno) onda mozes jednostavno ovako:

Code:

        private Label findMyLabel(int pnIndex)
        {
            return this.Controls[String.Format("label{0}", pnIndex)]
        }


ovo naravno podrazumeva da labelX postoji, inace ces dobiti exception.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-3.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon Re: c# - pretvaranje stringa u ime objekta07.06.2008. u 21:45 - pre 160 meseci
Još lakše!
Hvala!
 
Odgovor na temu

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-1.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon Re: c# - pretvaranje stringa u ime objekta26.06.2008. u 08:46 - pre 159 meseci
Ovo sa label-ima radi (i moja i mmix-ova funkcija) ali sad imam sličan problem sa slikama iz resursa.
Dodao sam slike u projekat i one se nalaze u Test.Properties.Resources. Imena slika su 1_1.png, 1_2.png, 1_3.png ... 3_1.png ... 4_1.png, 4_2.png. Hoću u zavisnosti od brojeva x i y da mi se pojavi određena slika na pictureBox1, recimo ako je x = 3 i y = 4 treba da se pojavi 3_4.png. Kako bi to mogao da izvedem? Da li je bolje da koristim ImageBox? Samo da napomenem da mi je bitno da nazivi slika budu u x_y.png formatu.

 
Odgovor na temu

MaxaS
Marjan Stamenovic
Pirot

Član broj: 178361
Poruke: 6
79.101.180.*



+1 Profil

icon Re: c# - pretvaranje stringa u ime objekta03.07.2008. u 01:06 - pre 159 meseci
if (x == 1 && y == 2)
{
pictureBox1.Image = global::Test.Properties.Resources.1_2;
}
...................
...................

Mislim da si ovo trazio, ako nisi, onda sam pogresno razumeo pitanje.
 
Odgovor na temu

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-a-1.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon Re: c# - pretvaranje stringa u ime objekta03.07.2008. u 06:19 - pre 159 meseci
Hvala!
Našao sam najelegantnije rešenje a to je:
Code:
pictureBox1.Image = (Image)test.Properties.Resources.ResourceManager.GetObject(x + "_" + y + ".png");
 
Odgovor na temu

[es] :: .NET :: c# - pretvaranje stringa u ime objekta

[ Pregleda: 1725 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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