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

[C#] Dinamicko kreiranje PictureBox-ova

[es] :: .NET :: .NET Desktop razvoj :: [C#] Dinamicko kreiranje PictureBox-ova

[ Pregleda: 2383 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bmanj

Član broj: 50315
Poruke: 89
*.dynamic.sbb.rs.



Profil

icon [C#] Dinamicko kreiranje PictureBox-ova11.01.2010. u 13:44 - pre 173 meseci
Pozdrav,

Na formi treba da prikazem nekoliko slika. Slike se nalaze u nekom direktorijumu (c:\slike).

Problem je sto ce se za vreme rada programa broj slika menjati (nekad ce biti 3, nekad 5).

Predpostavljam da moram da za svaku sliku napravim po jedan PictureBox. To je u redu, ali ono sto me muci je da ne znam kako dalje da radim sa slikama, posto moram da ih rasporedim na formi... Ne znam kako da im "pristupim" i definisem poziciju na formi.

Da li mozete da mi pomognete kako to da uradim?

Hvala unapred!
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.static.sbb.rs.



+987 Profil

icon Re: [C#] Dinamicko kreiranje PictureBox-ova11.01.2010. u 14:08 - pre 173 meseci
Pod pretpostavkom da u resursima imas dodatu sliku sa nazivom strip.

Na formu dodas FlowLayoutPanel i dodas sledeci kod:

Code:

            Image image = Properties.Resources.strip;  // ovde mozes da ucitas sliku iz fajla sa file sistema....

            PictureBox picture1 = new PictureBox()
            {
                Image = image,
                Width = image.Width,
                Height = image.Height
            };

            PictureBox picture2 = new PictureBox()
            {
                Image = image,
                Width = image.Width,
                Height = image.Height
            };

            this.flowLayoutPanel1.Controls.Add(picture1);
            this.flowLayoutPanel1.Controls.Add(picture2);


Ovo ce dodati 2 pictureBox-a na formu i pri tome ce ih "lepo" rasporediti. E ovo je samo grubo objasnjenje kako i sta treba uraditi...
 
Odgovor na temu

bmanj

Član broj: 50315
Poruke: 89
*.dynamic.sbb.rs.



Profil

icon Re: [C#] Dinamicko kreiranje PictureBox-ova11.01.2010. u 14:15 - pre 173 meseci
To mi je sve okej, ali stvar je u tome da cu nekad imati 3 nekad 5, nekad 7 slika. Ovo tvoje je "na tvrdo" napisano.

Razumem da bih sve provukao kroz neku for petlju, tipa

Code:

int brojSlika = 10; // recimo da sam negde ranije izbrojao da imam 10 slika u onom folderu

for (int i = 0; i < brojSlika; i++) {

  PictureBox pb = new PictureBox();
  pb.Name = "PictureBox" + i.ToString();

}



Kako bih sada pristupio PictureBoxu koji ima ime PictureBox4?



 
Odgovor na temu

bmanj

Član broj: 50315
Poruke: 89
*.dynamic.sbb.rs.



Profil

icon Re: [C#] Dinamicko kreiranje PictureBox-ova11.01.2010. u 15:00 - pre 173 meseci
Da li bi se ovo moje resavalo sa refleksijom?
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.static.sbb.rs.



+987 Profil

icon Re: [C#] Dinamicko kreiranje PictureBox-ova11.01.2010. u 15:36 - pre 173 meseci
Ne moras preko refleksije mozes i preko:

Code:



int brojSlika = 10; // recimo da sam negde ranije izbrojao da imam 10 slika u onom folderu

for (int i = 0; i < brojSlika; i++) {

  PictureBox pb = new PictureBox();
  pb.Name = "PictureBox" + i.ToString();
  pb.Image = ....
  pb.Width = ...
 
 this.flowLayoutPanel1.Controls.Add(pb);   // <= !!!
}


PictureBox pb2 = (PictureBox)this.flowLayoutPanel1.Controls.Find("PictureBox2", false)[0];


s tim da moras da nasetujes property Name u svim PictureBox-ovima na "PictureBox1", "PictureBox2", ....

[Ovu poruku je menjao Igor Gajic dana 11.01.2010. u 16:52 GMT+1]
 
Odgovor na temu

bmanj

Član broj: 50315
Poruke: 89
*.dynamic.sbb.rs.



Profil

icon Re: [C#] Dinamicko kreiranje PictureBox-ova27.01.2010. u 20:33 - pre 173 meseci
Pozdrav!

Ovo mi je ponovo postalo aktuelno, ako mozete da mi pomognete da resim.

Dakle, imam formu. Na njoj se nalaze

1. Dugme sa natpisom "Dodaj novi"
2. Combobox
3. Text polje
4. dugme sa natpisom "Postavi".

Isto tako, u folderu C:\Slike mi se nalazi nekoliko slika (10-20), koje imaju imena 1.png, 2.png, 3.png, itd.

Kada kliknem na dugme "Dodaj novi", kreira se PictureBox, i u njega se ubaci slika 1.png. Isto tako, u Combobox se dodaje novi item, sa PictureBox1 (za prvu sliku), PictureBox2 (za drugu), itd.


Ono sto mi zapravo treba je da u text polje upisem broj, i da u Comboboxu izaberem naziv slike i kada kliknem na drugo dugme, da je postavim na poziciju koju sam upisao u text polje (dovoljna je samo X pozicija, da ne komplikujemo stvari).

Evo ga i code...

Code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace DinamickeKomponente
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int brojSlika = 0;

        
        /*
         * Ovde kreira pictureboxove i ubacuje slike
         */ 
        private void button1_Click(object sender, EventArgs e)
        {
            PictureBox pb = new PictureBox();
            pb.Name = "PictureBox" + (++brojSlika);
            pb.Size = new Size(100, 100);
            pb.Image = Image.FromFile(@"C:\slike\" + brojSlika.ToString() + ".png");
            this.Controls.Add(pb);
            comboBox1.Items.Add(pb.Name);
        }

        
        /*
         * Ovde treba da postavi PICTUREBOX na visinu u pixelima koja je upisana u textpolje
         * */
        private void button2_Click(object sender, EventArgs e)
        {
            // help!!!
        }
    }
}


Da li mozete da mi pomognete oko ovoga?

Isto tako, posto je ovo samo deo jednog (za mene) malo veceg resenja, bitno mi je da bude sto sto je moguce optimizovanije i da se odigrava sto je moguce brze.


Iskreno Hvala unapred!



[Ovu poruku je menjao bmanj dana 28.01.2010. u 15:59 GMT+1]
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: [C#] Dinamicko kreiranje PictureBox-ova

[ Pregleda: 2383 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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