Um módulo de função de votação é indispensável para visualizar os resultados da votação. Usar uma barra de progresso para exibir cada resultado da votação pode fornecer um efeito claro. O seguinte é o meu método, sinta-se à vontade para me esclarecer:
1: Faça uma imagem para usar como barra de progresso. Você só precisa de uma imagem bem pequena, como 20px de altura e 1px de largura.
2: Insira um controle de imagem na célula onde a barra de progresso será exibida e defina seu imageUrl para o local da imagem concluída.
3: Use um objeto dataReader dr para salvar o número de votos retirados para cada item, use uma variável do tipo int sum para salvar o número total de votos retirados e defina uma variável do tipo double para cada item para salvar o resultado da divisão o número de votos individuais por (/) o número total de votos (decimal) e, em seguida, defina uma variável do tipo int para salvar o comprimento da barra de progresso a ser exibida eventualmente (use a variável anterior do tipo double * o comprimento da célula usado para exibir a barra de progresso e, em seguida, forçar a conversão para o tipo int), atribua o comprimento. Basta fornecer o atributo de largura da imagem. A seguir está meu trecho de código, que exibe quatro barras de progresso:
SqlCommand cmd=new SqlCommand("select * from TvoteNum order by Vid",con);//instrução SQL para descobrir o resultado da votação de cada item
SqlDataReader dr=cmd.ExecuteReader();
......
SqlCommand cmd1=new SqlCommand("select sum(Vnum) from TvoteNum",con1);//instrução SQL para descobrir o número total de votos
int soma=Convert.ToInt32(cmd1.ExecuteScalar());
...
dr.Read();//Lê o primeiro registro do objeto datareader
this.Label1.Text=dr.GetInt32(1).ToString();//Número de votos para o primeiro item
double w1=(Convert.ToDouble(this.Label1.Text)/sum);//O número de votos para este item representa a porcentagem do número total de votos
int wid1=(int)(w1*310);//Converte para pixels específicos, 310 é o comprimento da célula a ser usada para exibir a barra de progresso
this.Image1.Width=wid1;//A largura atribuída à imagem
dr.Read();//Lê o segundo registro
this.Label2.Text=dr.GetInt32(1).ToString();
double w2=(Convert.ToDouble(this.Label2.Text)/sum);
int wid2=(int)(w2*310);
this.Image2.Width=wid2;
dr.Read();//Lê o terceiro registro
this.Label3.Text=dr.GetInt32(1).ToString();
double w3=(Convert.ToDouble(this.Label3.Text)/soma);
int wid3=(int)(w3*310);
this.Image3.Width=wid3;
dr.Read();//Lê o quarto registro
this.Label4.Text=dr.GetInt32(1).ToString();
double w4=(Convert.ToDouble(this.Label4.Text)/sum);
int wid4=(int)(w4*310);
this.Image4.Width=wid4;
......