منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تغير لون Label عند الضغط عليه (على أساس إجابة صحيحة)
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته

ملاحظة: أنا جد مبتدأ، و هذه فكرتي في طريقة برمجة الاختبار، اذا كانت خاطئة الفكرة وجهوني للفكرة السليمة

أحاول صنع برنامج أسئلة امتحانات، (إختيار من متعدد)
قمت بالاتصال بقاعدة البيانات أكسس (الجدول يحتوي أعمدة ID السؤال و 6 إجابات مقترحة)

في الفيجوال، أريد:
لما تكون قيمة Text.ID تشير إلى السؤال 1، فلما يضغط المستخدم على Label الإجابة الصحيحة يتحول لونه إلى الأخضر
و لما يضغط على Label الإجابة الخاطئة يتحول إلى الأحمر، و يظهر الذي أمام الجواب الصحيح بالأخضر.

و هكذا ...


ممكن هذا السيناريو
في العام نعلن عن مصفوفة  اليبالات الخمسة
PHP كود :
 Dim lst_labl() As Label 

الان في form_load نضع فيها قائمة الليبلات  الخمسة
PHP كود :
lst_labl = {Label1Label2Label3Label4Label5


الان في نضيف هذا الحدث الذي يشمل الليبلات الخمسة اي نضع فيها نفس الشرط  

PHP كود :
Private Sub Label5_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Label5.ClickLabel4.ClickLabel3.ClickLabel2.ClickLabel1.Click
        Dim labclicker 
As Label DirectCast(senderLabel)

 
       If labclicker.Text "bonne_reponse" Then
            labclicker
.BackColor Color.Green
        Else
            labclicker
.BackColor Color.Red
            For i 
0 To 4
                If lst_labl
(i).Text "bonne_reponse" Then
                    lst_labl
(i).BackColor Color.Green
                End 
If
 
           Next
        End 
If
 
   End Sub 


في الشكل المرافق الليبال هو الذي فيه a2 a3 a4 a5a6 وليس r1 .........الخ
اجعل التكست بوكس للقراءة فقط و  eanable = false
جزاك الله خيرا، و نفع بك

سؤال لو سمحت: لكن له علاقة برقم السؤال ؟ يعني عندما يتغير السؤال تتغير الإجابة الصحيحة. كيف السبيل إلى ذلك؟؟

و عذرا على الإكثار
(06-09-20, 08:35 PM)HUNTER25 كتب : [ -> ]جزاك الله خيرا، و نفع بك

سؤال لو سمحت: لكن له علاقة برقم السؤال ؟ يعني عندما يتغير السؤال تتغير الإجابة الصحيحة. كيف السبيل إلى ذلك؟؟

و عذرا على الإكثار

من اين مصدر الاجابة ؟ هو  ما يجب تغيير في الشرط
يعني لو كانت الاجابة في مصفوفة حدد فقط العنصر
مثلا

reponses = {r1,r2,r3,r
3}

فانت تقارن مع reponse(index)
يجب ان تضيف عمود اخر في الجدول من نوع Integer يحتوي على Index الاجابة الصحيحة وليكن اسمه Answer

بعد ذلك تقوم بتعريف array تحتوي على الليبلات الخمسة كما اخبرك اخي عبد الهادي بارك الله فيه

وفي حدث الضغط على الليبلات  تقوم باحضار الاجابة الصحيحة الحالية واختبار اذا تم الضغط على الليبل المقابل لها ام لا :

كود :
   Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click,
       Label2.Click, Label3.Click, Label4.Click, Label5.Click

       Dim lbl As Label = sender
       Dim AnswerIndex As Integer = Me.BindingContext(DataSet1, "Table1").Current.Item("Answer")



       If lst_labl(AnswerIndex) Is lbl Then
           lbl.BackColor = Color.Green
       Else
           lbl.BackColor = Color.Red
       End If
   End Sub
جاري التجربة، أحسن الله إليكم
لماذا هناك زر السابق ........ لما يظهب الى التالي .لماذا يرجع .....اجاب صح او خطا فنحسب النقط .......و يمكن الاستعاضة بزر التالي بتايمر يعرض مباشرة السؤال الموالي دون الحاجة الى زر ...و لا الى الاخير ... انت تضع شرطا في التايمر او معادلة التصحيح ....اي لما يكون عدد الاسئلة هو نفسه عدد طول المصفوفة او عدد 10 مثلا يتوقف التمرين و نعطيه النتيجة
....................................
كما ان هذه الاسئلة تصلح في الاستبيانات و المرجهة السريعة

بالتوفيق
الحقيقة اردت عمله لمراجعة اختبار التخصص في الطب ... يعني اسمح للطالب يرجع للسؤال السابق في حالة اراد مراجعته او شيء ما
في البدايه انت بتقول
(06-09-20, 06:38 PM)HUNTER25 كتب : [ -> ]لما يضغط على Label الإجابة الخاطئة يتحول إلى الأحمر، و يظهر الذي أمام الجواب الصحيح بالأخضر.

هذا مبيزبطش مع قولك الاخير
(07-09-20, 01:31 AM)HUNTER25 كتب : [ -> ]يعني اسمح للطالب يرجع للسؤال السابق في حالة اراد مراجعته او شيء ما


فكيف بعد ما ظهر له اللون بيرجع يراجعه

الا اذا كان هالبرنامج مجرد تعليم وليس تقييم