none
Picture Box RRS feed

  • Pergunta

  • Pessoal,

    Estou fazendo uma GUI que de mostrar uma sequência de imagens espaçadas por um tempo pré definido, em uma picture box.

    Por exemplo, tenho um diretorio com as imagens teste01.bmp, teste02.bmp... teste10.bmp.
    Quero que essas imagens sejam mostradas na picture box a cada segundo, no primiro segundo a teste01.bmp, no segundo a teste02.bmp e por ai vai... como faço isso? Sei colocar a imagen numa picture bos assim:

    pictureBox1.Image = new Bitmap("C:\\Users\\motta\\Pictures\\teste01.bmp");
    mas não sei controlar o tempo! Ajudem, sou iniciante!
    sábado, 19 de dezembro de 2009 00:51

Respostas

  • Adicione um componente chamado timer ao seu form.

    Sete a propriedade Enable para true e o interval para 1000 milissegundos (1 segundo).

    No load do seu form faça:

    private void frmTeste_Load(object sender, EventArgs e)
            {
                // inicia o timer
                timer1.Start();           
            }



    fora dos métodos, normalmente logo no início do form, declare as seguintes variáveis globais:

    public partial class frmTeste : Form
        {
            string gImagem = "";
            int gCont = 1;

    para fazer códigos durante um intervalo, utilize o evento tick do timer, no seu caso ficaria:

    private void timer1_Tick(object sender, EventArgs e)
            {
                      //monta o caminho da imagem; 
                      gImagem = "C:\\Users\\motta\\Pictures\\teste" + gCont + ".bmp";

                      pictureBox1.Image = new Bitmap(gImagem);

                      gCont ++;
            }

    Para parar o seu timer, utilize:

    private void button1_Click(object sender, EventArgs e)
            {
                // pára o timer
                timer1.Stop();
            }




    Juntando todo o código ficaria:

    public partial class frmTeste : Form
    {
        //variaveis globais
            string gImagem = "";
            int gCont = 1;

        private void frmTeste_Load(object sender, EventArgs e)
        {
            // inicia o timer
                timer1.Start();          
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            //monta o caminho da imagem;
            gImagem = "C:\\Users\\motta\\Pictures\\teste" + gCont + ".bmp";

            pictureBox1.Image = new Bitmap(gImagem);

            gCont ++;
            }

        private void button1_Click(object sender, EventArgs e)
            {
                    // pára o timer
                    timer1.Stop();
            }
    }

    Claro que você tem que melhorar, contando o número de imagens, zerar o contador quando atingir o máximo, etc!
    sábado, 19 de dezembro de 2009 12:50

Todas as Respostas

  • Utilize da seguinte maneira
    pictureBox1.Image = new Bitmap("C:\\Users\\motta\\Pictures\\teste" + Convert.ToSting(DateTime.Now.Second) + ".bmp");

    Abraço,

    Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programming but I like it.
    sábado, 19 de dezembro de 2009 01:41
  • Adicione um componente chamado timer ao seu form.

    Sete a propriedade Enable para true e o interval para 1000 milissegundos (1 segundo).

    No load do seu form faça:

    private void frmTeste_Load(object sender, EventArgs e)
            {
                // inicia o timer
                timer1.Start();           
            }



    fora dos métodos, normalmente logo no início do form, declare as seguintes variáveis globais:

    public partial class frmTeste : Form
        {
            string gImagem = "";
            int gCont = 1;

    para fazer códigos durante um intervalo, utilize o evento tick do timer, no seu caso ficaria:

    private void timer1_Tick(object sender, EventArgs e)
            {
                      //monta o caminho da imagem; 
                      gImagem = "C:\\Users\\motta\\Pictures\\teste" + gCont + ".bmp";

                      pictureBox1.Image = new Bitmap(gImagem);

                      gCont ++;
            }

    Para parar o seu timer, utilize:

    private void button1_Click(object sender, EventArgs e)
            {
                // pára o timer
                timer1.Stop();
            }




    Juntando todo o código ficaria:

    public partial class frmTeste : Form
    {
        //variaveis globais
            string gImagem = "";
            int gCont = 1;

        private void frmTeste_Load(object sender, EventArgs e)
        {
            // inicia o timer
                timer1.Start();          
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            //monta o caminho da imagem;
            gImagem = "C:\\Users\\motta\\Pictures\\teste" + gCont + ".bmp";

            pictureBox1.Image = new Bitmap(gImagem);

            gCont ++;
            }

        private void button1_Click(object sender, EventArgs e)
            {
                    // pára o timer
                    timer1.Stop();
            }
    }

    Claro que você tem que melhorar, contando o número de imagens, zerar o contador quando atingir o máximo, etc!
    sábado, 19 de dezembro de 2009 12:50