Модуль функции голосования незаменим для просмотра результатов голосования. Использование индикатора выполнения для отображения каждого результата голосования может обеспечить четкий эффект. Ниже приведен мой метод, пожалуйста, не стесняйтесь просветить меня:
1. Создайте изображение для использования в качестве индикатора выполнения. Вам понадобится только очень маленькое изображение, например, 20 пикселей в высоту и 1 пиксель в ширину.
2. Вставьте элемент управления изображением в ячейку, где должен отображаться индикатор выполнения, и установите для его imageUrl местоположение завершенного изображения.
3. Используйте объект dataReader dr, чтобы сохранить количество голосов, отданных за каждый элемент, используйте переменную типа int sum, чтобы сохранить общее количество отнятых голосов, и определите переменную двойного типа для каждого элемента, чтобы сохранить результат деления. количество отдельных голосов на (/) общее количество голосов (десятичное), а затем определите переменную типа int, чтобы сохранить длину индикатора выполнения, который будет отображаться в конечном итоге (используйте предыдущую переменную типа double * длину ячейки используется для отображения индикатора выполнения, а затем принудительного преобразования в тип int), назначьте длину. Просто укажите атрибут ширины изображения. Ниже приведен фрагмент кода, который отображает четыре индикатора выполнения:
SqlCommand cmd=new SqlCommand("select * from TvoteNum order by Vid",con);//оператор SQL для выяснения результатов голосования по каждому элементу
SqlDataReader dr=cmd.ExecuteReader();
......
SqlCommand cmd1=new SqlCommand("select sum(Vnum) from TvoteNum",con1);//оператор SQL для определения общего количества голосов
int sum = Convert.ToInt32(cmd1.ExecuteScalar());
...
dr.Read();//Читаем первую запись объекта чтения данных
this.Label1.Text=dr.GetInt32(1).ToString();//Количество голосов за первый элемент
double w1=(Convert.ToDouble(this.Label1.Text)/sum);//Количество голосов за этот элемент составляет процент от общего количества голосов
int wid1=(int)(w1*310);//Преобразуем в определенные пиксели, 310 — длина ячейки, которая будет использоваться для отображения индикатора выполнения
this.Image1.Width=wid1;//Ширина, назначенная изображению
dr.Read();//Читаем вторую запись
this.Label2.Text=dr.GetInt32(1).ToString();
двойной w2=(Convert.ToDouble(this.Label2.Text)/sum);
int wid2=(int)(w2*310);
this.Image2.Width=wid2;
dr.Read();//Читаем третью запись
this.Label3.Text=dr.GetInt32(1).ToString();
двойной w3=(Convert.ToDouble(this.Label3.Text)/sum);
int wid3=(int)(w3*310);
this.Image3.Width=wid3;
dr.Read();//Читаем четвертую запись
this.Label4.Text=dr.GetInt32(1).ToString();
двойной w4=(Convert.ToDouble(this.Label4.Text)/sum);
int wid4=(int)(w4*310);
this.Image4.Width=wid4;
......