Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 2.460 pregleda

Najnovija ↓

c# - pretvaranje stringa u ime objekta 07.06.2008. u 19:57 · pre 224 meseca #1
Ć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!
Re: c# - pretvaranje stringa u ime objekta 07.06.2008. u 20:27 · pre 224 meseca #2
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.
Re: c# - pretvaranje stringa u ime objekta 07.06.2008. u 22:17 · pre 224 meseca #3
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.
Potpis
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ć
Re: c# - pretvaranje stringa u ime objekta 26.06.2008. u 09:46 · pre 223 meseca #5
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.

Re: c# - pretvaranje stringa u ime objekta 03.07.2008. u 02:06 · pre 223 meseca #6
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.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme