Jump to content
Tythtyth

PRoblemas com variáveis e picturebox

Recommended Posts

Tythtyth

Eu tenho uma PictureBox e quero que ela ponha uma imagem dependendo do número variável. Se for 1 põe uma imagem, se for 2 põe outra.

Como faço isso?

Share this post


Link to post
Share on other sites
f-22

Switch (var)

case 1:

  pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;

  pictureBox1.Image = Image.FromFile("c:\x.jpg");

break:

case N...

Share this post


Link to post
Share on other sites
RJ90

private void btnChange_Click(object sender, EventArgs e)
{
Image img1 = Image.FromFile("./Images/green.png");
        Image img2 = Image.FromFile("./Images/red.png");

        if (nudValue.Value == 0)
        {
	pbImage.Image = img1;
        }
        else
        	pbImage.Image = img2;
}

Projecto: http://dl.dropbox.com/u/4494157/PictureBox.rar

Cumprimentos,


Samsung 700Z5A-S01PT Samsung Ominia W

ᥡ What Else? ᥡ

Share this post


Link to post
Share on other sites
f-22

Tens de explicar melhor o que queres fazer. O que é para fazer em concreto?

Disses-te que querias mudar uma img dependendo de uma var. Tens ai, e agora o que queres?

Share this post


Link to post
Share on other sites
RJ90

Não necessariamente.

Crias um método numa classe publica que recebe como parâmetros dois valores e retorna um booleano.

Depois quando quiseres usar apenas tens de fazer isto:

if(Classe.Método(valor1,valor2) == true)
{
pbImage.Image = img1;
}
else
pbImage.Image = img2;


Samsung 700Z5A-S01PT Samsung Ominia W

ᥡ What Else? ᥡ

Share this post


Link to post
Share on other sites
MSOlhao

Viva,

É muito mais simples utilizares um Dictionary para fazeres isso.

public partial class Form1 : Form
{
    private Dictionary<int, string> images;

    public Form1()
    {
        InitializeComponent();
        fillDictionary();
    }

    private void fillDictionary()
    {
        images = new Dictionary<int, string>();
        // Adiciona novos items
        images.Add(1, "image1.jpg");
        images.Add(2, "image2.jpg");
        images.Add(3, "image3.jpg");
    }

    private void button1_Click(object sender, EventArgs e)
    {
        pictureBox1.ImageLocation = getImage(Convert.ToInt32(textBox1.Text));
    }

    private string getImage(int valor)
    {
        if (images.ContainsKey(valor))
        {
            return images[valor];
        }
        return string.Empty;
    }
}

Share this post


Link to post
Share on other sites
xtrm0

Podes dar nome às imagens tipo 1, 2 ,3 ,4 ,5 ,6, etc..

e fazer:

        Image img = Image.FromFile("./Images/" + var + ".png");
        pbImage.Image = img;

Não é obvio?


<Signature goes here>

Share this post


Link to post
Share on other sites
MSOlhao

Viva,

Sim, com o Dictionary tens de adicionar as imagens, se não quiseres podes usar o exemplo do xtrm0.

Share this post


Link to post
Share on other sites
Tythtyth

O problema é que eu não uso as imagens de uma pasta, está em Resources porque eu as importei.

Share this post


Link to post
Share on other sites
MSOlhao

Viva,

Dizes que tens as imagens num Resource File (.resx), se deres nomes às imagens do tipo, image1; image2; image3;

Podes fazer isto:

using System.Resources;

private Image getFromResources(String id)
{
    if (!(id.Equals(String.Empty)))
    {
        String filename = "image"+ id;
        ResourceManager rm = 
            new ResourceManager("DictionarySample.ImageResources",
                GetType().Assembly);
        Bitmap image = (Bitmap)rm.GetObject(filename);
        return image;
    }
    return null;
}

// Modo de utilização:
private void button1_Click(object sender, EventArgs e)
{
    pictureBox1.Image = getFromResources(textBox1.Text);
}

Nota: Onde eu tenho DictionarySample.ImageResources, tu colocas o <nome do teu Projecto>.<nome da tua Resource>

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.