Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 08. 03. 2012 21:37

mw
Zelenáč
Příspěvky: 2
Reputace:   
 

PictureBox v C#

Prosím poraďte, potřebuji naplnit 45 PictureBoxů, hraji si s jednoduchými puzzlemi a dost si myslím, že by to mělo jít nějakým cyklem a ne takto:

            pictureBox1.Image = new Bitmap(Properties.Resources.MF1);
            pictureBox2.Image = new Bitmap(Properties.Resources.MF2);
            pictureBox3.Image = new Bitmap(Properties.Resources.MF3);
            pictureBox4.Image = new Bitmap(Properties.Resources.MF4);
            pictureBox5.Image = new Bitmap(Properties.Resources.MF5);
            pictureBox6.Image = new Bitmap(Properties.Resources.MF6);
            pictureBox7.Image = new Bitmap(Properties.Resources.MF7);
            pictureBox8.Image = new Bitmap(Properties.Resources.MF8);
            pictureBox9.Image = new Bitmap(Properties.Resources.MF9);
            ...
            pictureBox45.Image = new Bitmap(Properties.Resources.MF45);


Ale nevím, jak nahradit názvy pictureBoxů a obrázků proměnnou, umím si vyrobit příslušné stringy cyklem, ale nevím jak to pak použít v objektech?
Díky moc

Offline

 

#2 08. 03. 2012 22:57

Jookyn
Místo: Mar. Lázně / Praha
Příspěvky: 143
Reputace:   11 
 

Re: PictureBox v C#

Vytvořit si třeba List<PictureBox> a přidávat je v cyklu do něj...

Offline

 

#3 09. 03. 2012 02:45 — Editoval RePRO (09. 03. 2012 03:02)

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: PictureBox v C#

Jdu spát, ale napadlo mě narychlo (ale nedělej to tak - názvy objektů nesmí být čísla, ani názvy proměnných, překladač to ale sežere):   

   

Code:

 for (int i = 1, int j = 1; i < 46; i++, j++)  {

       PictureBox i = new PictureBox();
       Bitmap j = new Bitmap("C:\\Images\\" + j + ".jpg");
       i.Image = (Image)j;
       Controls.Add(i);
  }

Ještě je třeba nastavit pozice a další vlastnosti. ;-) Jinak pak jedině elegantně přes pole/kolekce, jak píše kolega Jookyn. :-) Další způsob (ten nejelegantnější) mě nenapadá, třeba někdo vymyslí... Docela v mne zatrnulo, když jsem na to kouknul, říkal jsem si jak je to lehká otázka a problém. A ono houbelec, ve výsledku je to složitější...

Tak ještě nejdu spát. :-D Dolepím tu poslední myšlenku:
     

Code:

      for (int i = 1; i < 46; i++)  {
          
          PictureBox pictureBox = new PictureBox();
          Image image = Image.FromFile("images/"+ i +".png");
          pictureBox.Image = image;
          pictureBox.Name = "mujobrazek" + i;
       }

Nebo s tou Bitmapou obdobně:
 

Code:

 for (int i = 1, int j = 1; i < 46; i++, j++)  {

       PictureBox pictureBox = new PictureBox();
       Bitmap bitmapa = new Bitmap("C:\\Images\\" + j + ".jpg");
       pictureBox.Image = (Image)bitmapa;
       pictureBox.Name = "mujobrazek" + i;
       Controls.Add(picturebox);
  }

A ještě se tak hloupě zeptám, máte jiné nápady včetně implementace? Dobrou.


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

#4 09. 03. 2012 05:28

mw
Zelenáč
Příspěvky: 2
Reputace:   
 

Re: PictureBox v C#

↑ RePRO: Díky moc, odpoledne vyzkouším. Moje původní myšlenka byla, že už ty PictureBoxy mám na formuláři a nechtělo se mi do nich přidávat ručně 45 různých obrázků, ale není problém je smazat a naházet je tam při spuštění programu.

Podívám se i na tu výše uvedenou možnost s polem (taky díky), ale to musím maličko dostudovat :)

Offline

 

#5 09. 03. 2012 16:30

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: PictureBox v C#

Jasně, příklady tu máš - inspiruj se. V případě nějakých nejasností klidně napiš. :-)


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson