Un módulo de función de votación es indispensable para ver los resultados de la votación. El uso de una barra de progreso para mostrar cada resultado de la votación puede proporcionar un efecto claro. El siguiente es mi método, no dude en ilustrarme:
1: Crea una imagen para usarla como barra de progreso. Solo necesitas una imagen muy pequeña, como 20 px de alto y 1 px de ancho.
2: Inserte un control de imagen en la celda donde se mostrará la barra de progreso y establezca su imageUrl en la ubicación de la imagen completa.
3: use un objeto dataReader dr para guardar el número de votos eliminados para cada elemento, use una suma de variable de tipo int para guardar el número total de votos eliminados y defina una variable de tipo doble para cada elemento para guardar el resultado de la división. el número de votos individuales por (/) el número total de votos (decimal), y luego defina una variable de tipo int para guardar la longitud de la barra de progreso que se mostrará eventualmente (use la variable de tipo doble anterior * la longitud de la celda se usa para mostrar la barra de progreso y luego forzar la conversión a tipo int), asigne la longitud. Simplemente proporcione el atributo de ancho de la imagen. El siguiente es mi fragmento de código, que muestra cuatro barras de progreso:
SqlCommand cmd=new SqlCommand("select * from TvoteNum order by Vid",con);// Declaración SQL para conocer los resultados de la votación de cada elemento
SqlDataReader dr=cmd.ExecuteReader();
......
SqlCommand cmd1=new SqlCommand("select sum(Vnum) from TvoteNum",con1);// Declaración SQL para conocer el número total de votos
int suma=Convert.ToInt32(cmd1.ExecuteScalar());
...
dr.Read();//Leer el primer registro del objeto lector de datos
this.Label1.Text=dr.GetInt32(1).ToString();//Número de votos para el primer elemento
double w1=(Convert.ToDouble(this.Label1.Text)/sum);//El número de votos para este elemento representa el porcentaje del número total de votos
int wid1=(int)(w1*310);//Convertir a píxeles específicos, 310 es la longitud de la celda que se utilizará para mostrar la barra de progreso
this.Image1.Width=wid1;//El ancho asignado a la imagen
dr.Read();//Leer el segundo registro
this.Label2.Text=dr.GetInt32(1).ToString();
doble w2=(Convert.ToDouble(this.Label2.Text)/sum);
intwid2=(int)(w2*310);
this.Image2.Width=wid2;
dr.Read();//Leer el tercer registro
this.Label3.Text=dr.GetInt32(1).ToString();
double w3=(Convert.ToDouble(this.Label3.Text)/sum);
intwid3=(int)(w3*310);
this.Image3.Width=wid3;
dr.Read();//Leer el cuarto registro
this.Label4.Text=dr.GetInt32(1).ToString();
double w4=(Convert.ToDouble(this.Label4.Text)/sum);
intwid4=(int)(w4*310);
this.Image4.Width=wid4;
......