none
Sorteio Numeros

    Pregunta

  • Pessoal,

    Quero deixar um designer num programa de sorteio.

    Como faço pra que um label com o numero zero fique mudando de 0 a 9 até um determinado tempo?

    eu fiz assim mais fica processando e só muda do zero pro ultimo numero:

                int a=0;

                for (int j = 0; j < 400; j++)

                {

                    a = 0;

                    for (int i = 0; i <= 9; i++)

                    {

                        lblResultado.Text = Convert.ToString(a);

                        a++;

                    }

                }

     

     

    Att,

    Carlos Silva

    martes, 11 de mayo de 2010 19:07

Respuestas

  • Faça assim

     

    class WhileTest 
    {
     public void Sortear() 
     {
    	 int a=0;
    	int b=randObj.Next(50,100 );//gera um numero pseudo-aleatorio entre 50 e 100
    	int c=0;
    
      while (true) 
      {
    			lblResultado.Text = Convert.ToString(a);
    			a++;
    			if(a>9) a=0;
    			system.threadind.thread.sleep(500);//espera 500ms para que o usuario possa ver alguma coisa!
    			c++;
    			if(c>b) break; //quando c for maior que o numero sorteado em b, sai fora!
      }
     }
    }
    att

     


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    martes, 11 de mayo de 2010 19:21
    Moderador
  • Coloque um 

    Application.DoEvents() ;

    antes do sleep

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    martes, 11 de mayo de 2010 19:57
    Moderador

Todas las respuestas

  • Faça assim

     

    class WhileTest 
    {
     public void Sortear() 
     {
    	 int a=0;
    	int b=randObj.Next(50,100 );//gera um numero pseudo-aleatorio entre 50 e 100
    	int c=0;
    
      while (true) 
      {
    			lblResultado.Text = Convert.ToString(a);
    			a++;
    			if(a>9) a=0;
    			system.threadind.thread.sleep(500);//espera 500ms para que o usuario possa ver alguma coisa!
    			c++;
    			if(c>b) break; //quando c for maior que o numero sorteado em b, sai fora!
      }
     }
    }
    att

     


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    martes, 11 de mayo de 2010 19:21
    Moderador
  • Você pode usar um Timer, la vc define o tempo que deseja para mudar o numero e no evento Tick pode usar algo parecido com isso.

     

      private void timer1_Tick(object sender, EventArgs e)
      {
       Int32 varValor = Convert.ToInt32(label3.Text) + 1;
    
       if (varValor <= 9)
        label3.Text = varValor.ToString();
       else
        label3.Text = "0";
    
      }
    obs: Coloque no Load esta linha

     

    label3.Text = "0";
    

    msn: poseidonfba@hotmail.com
    martes, 11 de mayo de 2010 19:22
  • Acontece o mesmo problema, eu usando o system.threadind.thread.sleep(500); ele fica como se tivesse processando e só depois que faz toda a função que aparece alguma coisa, e é exatamente só o ultimo numero, ou seja o efeito de ficar nos numeros mudando não acontece!

     

    Att,

    Carlos SIlva

    martes, 11 de mayo de 2010 19:49
  • Carlos,

     

    Voce tem que fazer uma thread para isso determinando o tempo e utilize a classe Random.

    Segue um artigo de como utilizar essa classe.

    http://csharpbrasil.com.br/2008/11/14/dica-gerando-numeros-randomicos-com-c-sharp/

    • Propuesto como respuesta Thiago MDTech martes, 11 de mayo de 2010 19:55
    martes, 11 de mayo de 2010 19:55
  • Coloque um 

    Application.DoEvents() ;

    antes do sleep

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    martes, 11 de mayo de 2010 19:57
    Moderador