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

كيف أقوم بجمع قيمة مجموعة من العناصر في متغير واحد

مغلق
بدأه Dr.Server في 24 يونيو 2007 · 6 رد · 685 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

ياجماعة .. والله وصلت لمرحلة الصداع في العملية هذي ... حاولت بشتى الطرق أسويها وعجزت ... وسأشرح لكم المشكلة

لدي كمبوبوكس سميتها comAcadem .. فيها الشهادات الأكاديمة :

الدبلوم ( يحتسب بدرجتين ) البكالوريوس ( يحتسب بأربع درجات ) دراسات عليا (يحتسب بست درجات )

وكمبو بوكس أخر باسم comYears لسنوات الخبرة :

سنة - 4 سنوات (يحتسب درجتان)

4 سنوات - 8 سنوات (يحتسب اربع درجات)

8 سنوات - 12 سنة (يحتسب ست درجات)

وأزرار راديو تحمل ( درجتان ) اذا كان الاجابة نعم و (صفر) اذا كانت لا

ثم يحتسب الفورم مجموع اختيارات الشخص من الأعلى ويجمعها ويطبع لي الرقم في ليبل باسم lebDegree

طباعة النتيجة لامشكلة بس اللي جنني الجمع .. لأني لما أفتح نفس الكمبو بوكس واختار نفس الخيار السابق يقوم يضيف القيمة مرة اخرى .. !؟؟!؟!!؟

وأحيانا لايجمع صح بين قيم الاختيارات

ألف شكر مروركم قبل ردودكم

Public Class Form1
	Dim DEG As Integer
	Dim num As Integer

	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

	End Sub

	Private Sub comYears_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles comYears.SelectedIndexChanged
		Dim i As Integer
		DEG = 2
		For i = 0 To 7

			If comYears.SelectedIndex = i Then
				DEG = 2 * i + 2

			End If
			lebDegree.Text = DEG
		Next
	End Sub

	Private Sub comAcadem_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles comAcadem.SelectedIndexChanged
		Dim i As Integer
		For i = 0 To 2

			If comAcadem.SelectedIndex = i Then
				DEG = 2 * i + 2

			End If
			lebDegree.Text = DEG
		Next
	End Sub

	Private Sub radYes_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radYes.CheckedChanged
		If radYes.Checked = True Then
			DEG += 2

			num += 1
			If num < 2 Then
				lebDegree.Text = DEG
			End If
		End If
	End Sub

	Private Sub radNo_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radNo.CheckedChanged

	End Sub
End Class

sum.rar

#2

للأهمية يا أخوان

#3

يمكن ذلك بإستخدام المجموعة ListDictionary على سبيل المثال

نقوم أولاً بجلب المكتبة بهذا الشكل في اعلى النموذج نكتب .

Imports System.Collections.Specialized

ثم نعرف عنصر بهذا الشكل.

	Dim ld As New ListDictionary()

ثم نكتب هذا الاجراء.

 Private Sub SetValue(ByVal Key As Object, ByVal value As Object)
		If ld.Contains(Key) Then
			ld.Remove(Key)
		Else
			ld.Add(Key, value)
		End If
		Me.lblResult.Text = String.Empty
		Dim val As Integer = 0
		Dim enums As IDictionaryEnumerator = ld.GetEnumerator()
		While enums.MoveNext()
			val += CType(enums.Value, Integer)
		End While
		Me.lblResult.Text = val.ToString
	End Sub

ثم نرسل له القيمة , بهذا الشكل.

  SetValue("Year", comYears.SelectedValue)

على اعتبار أن القائمة المنسدلة عبارة عن Complex binding

بالنسبة لازرار الاختيار RadioButton سيكون على هذا النحو.

 Private Sub radYes_CheckedChanged(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles radYes.CheckedChanged, radNo.CheckedChanged
		If radYes.Checked Then
			SetValue("Checked", radYes.Tag)
		Else
			SetValue("Checked", radNo.Tag)
		End If
	End Sub

بالتوفيق إن شاء الله.

في المثال يتضح المقال

#4

بعد راسي يالشهاب الحارق .. بيض الله وجهك

أشكر لك تفاعلك .. سأقوم بالتجربة ياغالي وبارك الله فيك

#5

عزيزي الحر الأشقر .. مادري وش أقول لك صراحة ... أنا سويت اللي قلتلي عليه بس ماضبطت معي

أنا متأكد بأن طريقتك سليمة والخطأ مني أنا .. أخوك بالفيجوال ماله أكثر من شهر وأرجو تحمل جهلي

أتمنى منك أخي ولو أخذت من وقتك تقوم بتطبيق ذلك على الفورم السابق بالمرفقات وتكون سويت لي جميل

شاكر لك مرة أخرى

#6

جرّب يا أخي هذا الكود ، ضعه في زر أمر

lebDegree.text=comAcadem.selectedindex*2+comYears.selectedindex*2+4
if radYes.checked=true then lebDegree.text=lebDegree.text+2
#7

الكتااااااااااااااااااااااااااح

ياشيخ رووووووووووووووووح جعلك للجنة ... بسطرين بس ماشا الله عليك :)

10000000000000000000000%

بس أخوي وش المشكلة بالكود إذا ممكن توضح لنا

وألف ألف شكر

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…