لا غنى عن وحدة وظيفة التصويت لعرض نتائج التصويت. إن استخدام شريط التقدم لعرض كل نتيجة تصويت يمكن أن يوفر تأثيرًا واضحًا. فيما يلي طريقتي، فلا تتردد في تنوير لي:
1: قم بإنشاء صورة لاستخدامها كشريط تقدم، ما عليك سوى صورة صغيرة جدًا، مثل ارتفاع 20 بكسل وعرض 1 بكسل.
2: أدخل عنصر تحكم الصورة في الخلية التي سيتم عرض شريط التقدم فيها، وقم بتعيين imageUrl الخاص به على موقع الصورة المكتملة.
3: استخدم كائن dataReader dr لحفظ عدد الأصوات المأخوذة لكل عنصر، واستخدم مجموع متغير من النوع int لحفظ إجمالي عدد الأصوات المأخوذة، وحدد متغير نوع مزدوج لكل عنصر لحفظ نتيجة القسمة عدد الأصوات الفردية بمقدار (/) إجمالي عدد الأصوات (عشري)، ثم حدد متغير نوع int لحفظ طول شريط التقدم ليتم عرضه في النهاية (استخدم متغير النوع المزدوج السابق * طول الخلية يستخدم لعرض شريط التقدم، ثم فرض التحويل إلى نوع 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();
double 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();
double 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();
double w4=(Convert.ToDouble(this.Label4.Text)/sum);
int wid4=(int)(w4*310);
this.Image4.Width=wid4;
......