الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

خطأ فى دالة Select Case

بدأه thelordabdo في 26 نوفمبر 2011 · 2 رد · 680 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا مبتدىء فى تعلم vb.net 2010 و لا اعلم اين الخطأ فى هذا الكود

حيث ان من المفترض ان يقوم button3 بنفس عمل button1 و لكن ما يحدث انه لا يكتب ابدا التقدير Excellent بمعنى

عند كتابة 70 يظهر good

عند كتابة 80 مثلا تظهر ال msgbox

عند كتابة 101 يظهر fail !!!!! فما السبب ؟؟

Public Class Form1



    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        If a.Text >= 0 And a.Text < 50 Then
            b.Text = "Fail"
        ElseIf a.Text >= 50 And a.Text < 70 Then
            b.Text = "Good"
        ElseIf a.Text >= 70 And a.Text <= 100 Then
            b.Text = "Excellent"
        Else
            MessageBox.Show("NO WAY !!", " Error ")
        End If
    End Sub

    Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        Select Case a.Text
            Case 70 To 100
                b.Text = "Excellent"
            Case 50 To 70
                b.Text = "Good"
            Case 0 To 50
                b.Text = "Fail"
            Case Else
                MessageBox.Show("NO WAY !!", " Error ")
        End Select

    End Sub

End Class
#2

السلام عليكم ورحمه الله وبركاته

اخي عليك ان تعامل القيمة لمربع النص كقيمة عدديه وليس نصيه, جرب الكود التالي

Select Case Convert.ToInt32(a.Text)
        	Case 0 To 49
            	b.Text = "Fail"
        	Case 50 To 69
            	b.Text = "Good"
        	Case 70 To 100
            	b.Text = "Excellent"
        	Case Else
            	MessageBox.Show("NO WAY !!", " Error ")
    	End Select
1

.:: Wish to become better and better ::.

#3

شكرا جزيلا لك على هذة المعلومة المفيدة و التى ستفيدنى فى مشكلة اخرى فى برنامج اخر اقوم بتصميمه حيث عند المقارنة يعتبر الرقم 500 اصغر من الرقم 70 مثلا لان ال 5 اصغر من ال 7 حيث استنتجت انه يتعامل معها على انها كلمة و ليس رقم و لكن لم اكن اعلم كيف اجعله يقرأه على انه رقم , الان اعتقد ان المشكلة ستحل و جارى التجربة .

و لقد استخدمتها فى هذا الكود بعد اجراء تعديل بسيط عليها لتلافى الاخطاء التالية

1. عدم قبول الكسور فى الدرجات

2.لعدم حدوث خطأ فى حالة الارقام التى تقع بين 49 و 50 , 69 و70

3. عكست الترتيب لجعل الدرجة 70 مثلا تاخذ التقدير "Excellent" و ليس "Good"

الكود بعد التعديل

        Select Case Convert.ToSingle(a.Text)
            Case 70 To 100
                b.Text = "Excellent"
            Case 50 To 70
                b.Text = "Good"
            Case 0 To 50
                b.Text = "Fail"
            Case Else
                MessageBox.Show("NO WAY !!", " Error ")
        End Select

مواضيع مشابهة