none
Randomizar Windows Forms RRS feed

  • Pergunta

  • Pessoal, como faço para randomizar uma windows form?

    Por exemplo, eu tenho 100 windows forms criadas com perguntas e alternativas em cada uma delas. Gostaria que quando o usuário acertasse a pergunta na tela, a próxima pergunta (Windows Form) fosse escolhida randomicamente. Como fazer?

    domingo, 20 de setembro de 2015 22:13

Respostas

  • Boa noite!

    É realmente necessária a utilização de uma Windows Form para cada pergunta, não seria mais simples usar uma unica Windows Form e carregar as perguntar em objetos do tipo DataTable, List<>, Arrays?

    Talvez seria mais viavel

    • Marcado como Resposta Marcos SJ segunda-feira, 21 de setembro de 2015 20:48
    domingo, 20 de setembro de 2015 23:29
  • Te aconselho a fazer tudo em um só formulário, e seria desse modo para sortear as perguntas, mas desse mesmo modo daria para sortear formulários.

    É só substituir em vez de ser String troca por Form e você Add na lista todos seus formulários.

    System.Collections.Generic.List<string> Perguntas;
      Random r;
      int k;
    
      Perguntas = new System.Collections.Generic.List<string>();
    
    //Adicionando novas perguntas a lista.
      Perguntas.Add("Pergunta 1[...]");
      Perguntas.Add("Pergunta 2[...]");
    
      r = new Random();
    
      while (Perguntas.Count > 0)
      {
    
          k = r.Next(Perguntas.Count);
          Console.WriteLine("Pergunta escolhida foi: {0}",Perguntas[k]);
          //Se quiser apagar da lista o item sorteado
          cores.RemoveAt(k);
    
      }





    • Editado Cristiano Cunha segunda-feira, 21 de setembro de 2015 03:57
    • Marcado como Resposta Marcos SJ segunda-feira, 21 de setembro de 2015 20:48
    • Não Marcado como Resposta Maurício Dondoni quinta-feira, 24 de setembro de 2015 19:21
    • Marcado como Resposta Maurício Dondoni quinta-feira, 24 de setembro de 2015 19:21
    segunda-feira, 21 de setembro de 2015 03:53

Todas as Respostas

  • Boa noite!

    É realmente necessária a utilização de uma Windows Form para cada pergunta, não seria mais simples usar uma unica Windows Form e carregar as perguntar em objetos do tipo DataTable, List<>, Arrays?

    Talvez seria mais viavel

    • Marcado como Resposta Marcos SJ segunda-feira, 21 de setembro de 2015 20:48
    domingo, 20 de setembro de 2015 23:29
  • Te aconselho a fazer tudo em um só formulário, e seria desse modo para sortear as perguntas, mas desse mesmo modo daria para sortear formulários.

    É só substituir em vez de ser String troca por Form e você Add na lista todos seus formulários.

    System.Collections.Generic.List<string> Perguntas;
      Random r;
      int k;
    
      Perguntas = new System.Collections.Generic.List<string>();
    
    //Adicionando novas perguntas a lista.
      Perguntas.Add("Pergunta 1[...]");
      Perguntas.Add("Pergunta 2[...]");
    
      r = new Random();
    
      while (Perguntas.Count > 0)
      {
    
          k = r.Next(Perguntas.Count);
          Console.WriteLine("Pergunta escolhida foi: {0}",Perguntas[k]);
          //Se quiser apagar da lista o item sorteado
          cores.RemoveAt(k);
    
      }





    • Editado Cristiano Cunha segunda-feira, 21 de setembro de 2015 03:57
    • Marcado como Resposta Marcos SJ segunda-feira, 21 de setembro de 2015 20:48
    • Não Marcado como Resposta Maurício Dondoni quinta-feira, 24 de setembro de 2015 19:21
    • Marcado como Resposta Maurício Dondoni quinta-feira, 24 de setembro de 2015 19:21
    segunda-feira, 21 de setembro de 2015 03:53
  • OlÁ Maurício Dondoni,

    Sugiro que faça os devidos testes com as soluções apresentadas e marque como resposta a postagem que lhe auxiliou a chegar a uma conclusão. Caso você chegue a esta conclusão sozinho, poste aqui a solução criada por você mesmo e a marque como resposta para que a thread possa ser finalizada.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 21 de setembro de 2015 14:35
  • Ótimo, estou conseguindo fazer usando essa sua resposta, obrigado!!!
    quinta-feira, 24 de setembro de 2015 19:21