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

اظهار Textbox و Combobox بعد وضع علامة صح على Checkbox

بدأه Fr4Ev في 16 سبتمبر 2009 · 13 رد · 2,877 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كل عام وانتم بخير

عندي سؤال لمن اطرحه الا بعد ان تصفحت اكثر من موضوع ولم اجد الحل له

وسؤالي واضح بعنوان الموضوع

هو كيف وضع شرح بحيث لايظهر textBox و comboBox

الا بعد وضع علامة صح على checkBox

وايضا يوجد لدي سؤال اخر

الان في comboBox سأضع مجموعه من الخيارات مثلا

A

B

الان اريد ان يأخذ A قيمة 10 و B قيمة 20

بمعنى لو اخترت A فأن البرنامج سيحسب أنها 10 بالاكواد ويدمجها بالحسابات

لكي اقوم ببعض الحسابات على قيمه الاحرف

اتمنى الفكره وصلت

بانتظار مساعدتكم

post-212121-1253116646_thumb.png

#2

هلا اخي الحبيب بالنسبة لسؤالك الاول بخصوص اظهار مربص النص وصندوق السرد عند اختيار مربع الاختيار يمكنك عمل ذلك ببساطة في حدث النقر لمربع الاختيار كالتالي:

Textbox1.visible=checkBox.cheked

ComboBox1.visibale=checkBox.checked

فقط .

============================

أما عن سؤالك الثاني فهو ان تقوم بوضع القيم والعلامات الخاصة بها في جدول وبعدذلك تقوم باسناد حقل القيمة للخاصية DisplayMember وحقل العلامة للخاصية MemberValue وهذه افضل طريقة حتى تستطيع التعامل مع العلامات بسهولة

وبالنسبة لاختيار العلامات يمكنك عملها عن طريق SelectedIndexChanged الخاص بمربع السرد والتحرير

تم تعديل هذه المشاركة بواسطة أبوعزام في 16 سبتمبر 2009 في 19:34

أنا الرجل الضرب الذي تعرفونه***خشاش كرأس الحية المتوقد

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

#3
أبوعزام كتب:
هلا اخي الحبيب بالنسبة لسؤالك الاول بخصوص اظهار مربص النص وصندوق السرد عند اختيار مربع الاختيار يمكنك عمل ذلك ببساطة في حدث النقر لمربع الاختيار كالتالي:

Textbox1.visible=checkBox.cheked

ComboBox1.visibale=checkBox.checked

فقط .

============================

أما عن سؤالك الثاني فهو ان تقوم بوضع القيم والعلامات الخاصة بها في جدول وبعدذلك تقوم باسناد حقل القيمة للخاصية DisplayMember وحقل العلامة للخاصية MemberValue وهذه افضل طريقة حتى تستطيع التعامل مع العلامات بسهولة

وبالنسبة لاختيار العلامات يمكنك عملها عن طريق SelectedIndexChanged الخاص بمربع السرد والتحرير

الله يوفقك اخوي

جوابك على سؤالي الاول تمام الله يسعدك ياشيخ

المشكلة الان بالسؤال الثاني

بصراحه مافهمته ابدا ومثل ماقلت لك توني مبتدئ

وسويت برنامج صغير ابغى اطبق هالامور فيه

يعني مافهمت الجدول هذا كيف انشئه واضيف فيه القيم

فياليت تتحملني اخوي :blush:

#4

هلا اخي بالنسبة لطريقة عمل الجدول يمكنك عمله في برنامج اكسس وبعدذلك ربطه بالبرنامج او عمل جدول في نفس البرنامج وهذه ابسط طريقة وانصحك بقراءةو موضوع Ado.net الموجود في قسم Ado.net فهو شرح كامل لذلك او يمكنك عمل مصفوفة بها القيم والعلامات .

فمثلا يمكنك عمل ذلك كالتالي:

هذا الكود تضعه في اعلى النموذج

public structure dbs
dim name as string
dim no as integer
end structure

====

هذا الكود تضعه في حدث التحميل الخاص بالنموذج

 
dim db(5) as dbs
db(0).name="ممتاز"
db(0).no=100
db(1(.name="جيدجدا"
db(1).no=50
db(2).name="جيد"
db(2).no=30

وهكذا وبعد ذلك نقوم باسناد اسم المصفوفة إلى خاصية datasource الخاصة بقاعدة البيانات كالتالي:

combobox1.datasource=db
combobo1.displaymember="name"
combobox1.mebmervalue="no"

وهكذا وبعد ذلك في حدث تغيير القيمة الخاص بمربع التحرير والسرد نقوم بوضع العميل التي نريد كتالي:

textbox1.text+=combobox1.SelectedValue

فقط واعتذر على ارفقاق مثال لأني على جهاز اخر غير جهازي

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

قسم Ado.neT وخاصة في موضوع Ado.net من البداية حتى الاحتراف

أنا الرجل الضرب الذي تعرفونه***خشاش كرأس الحية المتوقد

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

#5
أبوعزام كتب:
هلا اخي بالنسبة لطريقة عمل الجدول يمكنك عمله في برنامج اكسس وبعدذلك ربطه بالبرنامج او عمل جدول في نفس البرنامج وهذه ابسط طريقة وانصحك بقراءةو موضوع Ado.net الموجود في قسم Ado.net فهو شرح كامل لذلك او يمكنك عمل مصفوفة بها القيم والعلامات .

فمثلا يمكنك عمل ذلك كالتالي:

هذا الكود تضعه في اعلى النموذج

public structure dbs
   dim name as string
   dim no as integer
   end structure

سويت جدول من نفس البرنامج

واضفت فيه المسميات والقيم

ونفذت الى قلت عليه

+++++++++++++++++

اقتباس
====

هذا الكود تضعه في حدث التحميل الخاص بالنموذج

 
   dim db(5) as dbs
   db(0).name="ممتاز"
   db(0).no=100
   db(1(.name="جيدجدا"
   db(1).no=50
   db(2).name="جيد"
   db(2).no=30

وايضا هذا عملته بس نوعا ما مافهمت النقطة هذي

db(5) <هل الرقم المحدد يعني عدد العناصر او ماذا؟؟

+++++++++++++++++

اقتباس
وهكذا وبعد ذلك نقوم باسناد اسم المصفوفة إلى خاصية datasource الخاصة بقاعدة البيانات كالتالي:

combobox1.datasource=db
   combobo1.displaymember="name"
   combobox1.mebmervalue="no"

ايضا هذا الشي سويته

لكن

datasource <اكتب فيه اسم الجدول الى انشئته مثلا "mark"?

طبعا

membervalue خطا ونكتب بداله valuemember <<من الهيلب حق البرنامج

+++++++++++++++++

اقتباس
وهكذا وبعد ذلك في حدث تغيير القيمة الخاص بمربع التحرير والسرد نقوم بوضع العميل التي نريد كتالي:

textbox1.text+=combobox1.SelectedValue

هذا الشي ماعرفته يعني وين مكانه

وشو مربع التحرير والسرد؟؟

+++++++++++++++++

اقتباس
فقط واعتذر على ارفقاق مثال لأني على جهاز اخر غير جهازي

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

قسم Ado.neT وخاصة في موضوع Ado.net من البداية حتى الاحتراف

بارك الله فيك اخوي ويجزيك جنات النعيم

شفت الموضوع الى قلت عليه وافادني كثير وانت افدتني بشكل كبير جدا

وياليت تجيب على تساؤلاتي بارك الله فيك

#6
اقتباس
وايضا هذا عملته بس نوعا ما مافهمت النقطة هذي

db(5) <هل الرقم المحدد يعني عدد العناصر او ماذا؟؟

نعم اخي يعني عدد العناصر في المصفوفة

اقتباس
ايضا هذا الشي سويته

لكن

datasource <اكتب فيه اسم الجدول الى انشئته مثلا "mark"?

طبعا

membervalue خطا ونكتب بداله valuemember <<من الهيلب حق البرنامج

نعم هو اسم الجدول او القاعدة التي انشأتها داخل البرنامج وليس خارجه يعني لو قلنا انك انشأت جدول في الاكسس بهذا الاسم فلايمكن ان تسنده إليه لأن البرنامج لن يتعرف عليه ويجب عليك القيام بعمل اتصال كما هو مكتوب في الموضوع اللذي وضعت لك رابطه

اعتذر عن الخطأ لأني لم اكن متواجد على الجهاز الخاص بي

اقتباس
هذا الشي ماعرفته يعني وين مكانه

وشو مربع التحرير والسرد؟؟

:rolleyes: اسم الحدث بالتحديد

Private Sub combobox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbFrom.SelectedIndexChanged

End Sub

يمكنك الدخول على الحدث بالضغط المزدوج على نفس الاداة

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

أنا الرجل الضرب الذي تعرفونه***خشاش كرأس الحية المتوقد

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

#7

اخوي ابو عزام الله يجزيك خير

تعبتك معي

بصراحه الشغله استصعبت علي وحاولت وعجزت

بكتب الكود هنا وعدله الله يوفقك

طبعا اسم القاعده الى انشئتها هو "Mark"

واسم الجدول الى فيه البيانات "Table1"

Public Class Form1


	 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

	 End Sub

	 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
		 CheckBox1.Checked = Nothing
		 CheckBox2.Checked = Nothing
		 CheckBox4.Checked = Nothing
		 CheckBox3.Checked = Nothing
		 CheckBox8.Checked = Nothing
		 CheckBox7.Checked = Nothing
		 CheckBox6.Checked = Nothing
		 CheckBox5.Checked = Nothing
		 TextBox1.Text = Nothing
		 TextBox2.Text = Nothing
		 TextBox4.Text = Nothing
		 TextBox3.Text = Nothing
		 TextBox8.Text = Nothing
		 TextBox7.Text = Nothing
		 TextBox6.Text = Nothing
		 TextBox5.Text = Nothing
		 TextBox16.Text = Nothing
		 TextBox15.Text = Nothing
		 TextBox14.Text = Nothing
		 TextBox13.Text = Nothing
		 TextBox12.Text = Nothing
		 TextBox11.Text = Nothing
		 TextBox10.Text = Nothing
		 TextBox9.Text = Nothing
		 TextBox17.Text = Nothing
		 TextBox18.Text = Nothing
		 TextBox20.Text = Nothing
		 TextBox19.Text = Nothing
		 ComboBox1.Text = Nothing
		 ComboBox2.Text = Nothing
		 ComboBox4.Text = Nothing
		 ComboBox3.Text = Nothing
		 ComboBox8.Text = Nothing
		 ComboBox7.Text = Nothing
		 ComboBox6.Text = Nothing
		 ComboBox5.Text = Nothing



	 End Sub

	 Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
		 TextBox1.Enabled = CheckBox1.Checked
		 TextBox2.Enabled = CheckBox1.Checked
		 ComboBox1.Enabled = CheckBox1.Checked
	 End Sub

	 Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
		 TextBox3.Enabled = CheckBox2.Checked
		 TextBox4.Enabled = CheckBox2.Checked
		 ComboBox2.Enabled = CheckBox2.Checked
	 End Sub

	 Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged
		 TextBox5.Enabled = CheckBox3.Checked
		 TextBox6.Enabled = CheckBox3.Checked
		 ComboBox3.Enabled = CheckBox3.Checked
	 End Sub

	 Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged
		 TextBox7.Enabled = CheckBox4.Checked
		 TextBox8.Enabled = CheckBox4.Checked
		 ComboBox4.Enabled = CheckBox4.Checked
	 End Sub

	 Private Sub CheckBox5_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox5.CheckedChanged
		 TextBox9.Enabled = CheckBox5.Checked
		 TextBox10.Enabled = CheckBox5.Checked
		 ComboBox5.Enabled = CheckBox5.Checked
	 End Sub

	 Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox6.CheckedChanged
		 TextBox11.Enabled = CheckBox6.Checked
		 TextBox12.Enabled = CheckBox6.Checked
		 ComboBox6.Enabled = CheckBox6.Checked
	 End Sub

	 Private Sub CheckBox7_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox7.CheckedChanged
		 TextBox13.Enabled = CheckBox7.Checked
		 TextBox14.Enabled = CheckBox7.Checked
		 ComboBox7.Enabled = CheckBox7.Checked
	 End Sub

	 Private Sub CheckBox8_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox8.CheckedChanged
		 TextBox15.Enabled = CheckBox8.Checked
		 TextBox16.Enabled = CheckBox8.Checked
		 ComboBox8.Enabled = CheckBox8.Checked
	 End Sub

	 Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

	 End Sub

	 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
		 Close()
	 End Sub

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

	 End Sub
 End Class

ياليت تضيف لي القاعدة بالكود

بتعبك معي اخوي

#8

لماذا تستخدم Data Binding يمكنك استخدام حلول اسهل و ابسط

مثلا انت تريد ان يكون للعنصر الواحد داخل الـ ComboBox قيمتين احداهما تظهر للمستخدم و الاخرى تستخدم برمجيا لذا سنستخدم الـ Structure يحتوى على متغيرين (كما صنعتم) و لكن بداخل الـ Structure سنعيد تعريف الداله ToString ليصبح شكل الـ Structure كالتالى

Public Structure ComboElement
	 Public Name as string
	 Public Code as Integer

Public Overrides Function ToString() as String
	 Return Name
End Function

End Structure

بعدها سنقوم بعمل مصفوفه تحتوى على العناصر التى سيتم اضافتها للـ ComboBox كالتالى

Dim Data(3) as ComboElement

Data(0).Name = "Ahmed"
Data(0).Code = 1

Data(1).Name = "Gamal"
Data(1).Code = 2

Data(2).Name = "Muhammad"
Data(2).Code = 3

Data(3).Name = "Ghost"
Data(3).Code = 4


Combo1.Items.AddRange(Data)

لإحضار القيمه المقابله للإسم الذى اختاره المستخدم، سيتم داخل الحدث SelectedIndexChanged كالتالى

Public Sub Combo1_SelectedIndexChanged(byval sender as object, byval e as EventArgs) Handles Combo1.SelectedIndexChanged

Dim cb as ComboElement = CType(Combo1.Items(Combo1.SelectedIndex), ComboElement)

msgbox cb.Code

End Sub

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#9
Muhammad alaa كتب:
لماذا تستخدم Data Binding يمكنك استخدام حلول اسهل و ابسط

مثلا انت تريد ان يكون للعنصر الواحد داخل الـ ComboBox قيمتين احداهما تظهر للمستخدم و الاخرى تستخدم برمجيا لذا سنستخدم الـ Structure يحتوى على متغيرين (كما صنعتم) و لكن بداخل الـ Structure سنعيد تعريف الداله ToString ليصبح شكل الـ Structure كالتالى

Public Structure ComboElement
	  Public Name as string
	  Public Code as Integer

 Public Overrides Function ToString() as String
	  Return Name
 End Function

 End Structure

بعدها سنقوم بعمل مصفوفه تحتوى على العناصر التى سيتم اضافتها للـ ComboBox كالتالى

Dim Data(3) as ComboElement

 Data(0).Name = "Ahmed"
 Data(0).Code = 1

 Data(1).Name = "Gamal"
 Data(1).Code = 2

 Data(2).Name = "Muhammad"
 Data(2).Code = 3

 Data(3).Name = "Ghost"
 Data(3).Code = 4


 Combo1.Items.AddRange(Data)

لإحضار القيمه المقابله للإسم الذى اختاره المستخدم، سيتم داخل الحدث SelectedIndexChanged كالتالى

Public Sub Combo1_SelectedIndexChanged(byval sender as object, byval e as EventArgs) Handles Combo1.SelectedIndexChanged

 Dim cb as ComboElement = CType(Combo1.Items(Combo1.SelectedIndex), ComboElement)

 msgbox cb.Code

 End Sub

و الله ولى التوفيق

الله يعطيك العافية اخوي محمد

الطريقة واضح انها سهله لكن نفس الشي يطلع معي مشكلة بالكود ومارضى يتنفذ البرنامج ابد

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

لاني مبتديء وباقي ماوضحت لي الصوره بالكامل

وبغلبكم معي

Test1.rar

#10

الكود ده هو اللى بيجيب المشكله

Combo1.Items.AddRange(Data)

الخطا الذى يحدث هنا سببه ان الداله AddRange تقبل مصفوفه من نوع Reference اى class و حيث اننا نمرر لها مصفوفه من نوع Value Type اى structure فتحدث المشكله لذا التعديل الواجب عمله هو تعديل التركيب ComboElement ليصبح class

	Public Class ComboElement
		Public Name As String
		Public Code As Integer

		Public Overrides Function ToString() As String
			Return Name
		End Function
	End Class

ايضا الكود المكتوب داخل الـ From_Load يتم تعديله ليصبح كالتالى

Dim Data(3) As ComboElement

		For i As Integer = 0 To 3
			Data(i) = New ComboElement
		Next

		Data(0).Name = "Ahmed"
		Data(0).Code = 1

		Data(1).Name = "Gamal"
		Data(1).Code = 2

		Data(2).Name = "Muhammad"
		Data(2).Code = 3

		Data(3).Name = "Ghost"
		Data(3).Code = 4

		Combo1.Items.AddRange(Data)

قمت بحذف الراسله التى تظهر مع تغيير كل عنصر و وضعت محتواها داخل TextBox1

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#11
Muhammad alaa كتب:
الكود ده هو اللى بيجيب المشكله

Combo1.Items.AddRange(Data)

الخطا الذى يحدث هنا سببه ان الداله AddRange تقبل مصفوفه من نوع Reference اى class و حيث اننا نمرر لها مصفوفه من نوع Value Type اى structure فتحدث المشكله لذا التعديل الواجب عمله هو تعديل التركيب ComboElement ليصبح class

	Public Class ComboElement
		 Public Name As String
		 Public Code As Integer

		 Public Overrides Function ToString() As String
			 Return Name
		 End Function
	 End Class

ايضا الكود المكتوب داخل الـ From_Load يتم تعديله ليصبح كالتالى

Dim Data(3) As ComboElement

		 For i As Integer = 0 To 3
			 Data(i) = New ComboElement
		 Next

		 Data(0).Name = "Ahmed"
		 Data(0).Code = 1

		 Data(1).Name = "Gamal"
		 Data(1).Code = 2

		 Data(2).Name = "Muhammad"
		 Data(2).Code = 3

		 Data(3).Name = "Ghost"
		 Data(3).Code = 4

		 Combo1.Items.AddRange(Data)

قمت بحذف الراسله التى تظهر مع تغيير كل عنصر و وضعت محتواها داخل TextBox1

و الله ولى التوفيق

الله يوفقك اخوي محمد كل مضبوط يسعدك ربي

بقى الان شي بسيط

هو عندي button

وابغى هالايقونه تحسب لي مثلا القيمة الخاصة بأحمد + قيمة جمال

هل بالامكان احصل على الكود الى ينفذها لاني جربت وماعرفت

والله يسعدك

#12

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

وبعد ذلك في حدث الاختيار تقوم بعمل حلقة تقوم بجمع قيمة كل عنصر منها والاخ Muhammad alaa راح يفيدك فيها

أنا الرجل الضرب الذي تعرفونه***خشاش كرأس الحية المتوقد

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

#13
أبوعزام كتب:
اخي الحبيب المعذرة على التأخير بالنسبة لسؤالك عن قيمة احمد وجمال فطريقتها هو تفعيل الاختيار الجماعي

وبعد ذلك في حدث الاختيار تقوم بعمل حلقة تقوم بجمع قيمة كل عنصر منها والاخ Muhammad alaa راح يفيدك فيها

حياك الله اخوي ابو عزام

وماقصرت جزاك الله خير كلكم فيكم الخير والبركه

وننتظر اخونا محمد

#14
اقتباس
اخي الحبيب المعذرة على التأخير بالنسبة لسؤالك عن قيمة احمد وجمال فطريقتها هو تفعيل الاختيار الجماعي

وبعد ذلك في حدث الاختيار تقوم بعمل حلقة تقوم بجمع قيمة كل عنصر منها والاخ Muhammad alaa راح يفيدك فيها

الاختيار الجماعى غير متوفر لأداة combobox.

لمعرفة مجموع القيم كما تريد لابد من وجود اكثر من combobox و يتم اختيار عنصر بداخل كل منهم اولا ثم نقوم بجمع القيم

الكود القديم يتم تعديله كالتالى

داخل الـ Form_Load قم بإضافة هذا السطر قبل End Sub

		ComboBox1.Items.AddRange(Data)

قم بحذف الحدث Combo1_SelectedIndexChanged فلا حاجه له

قم بإضافة الكود التالى

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
	Dim cb1 As ComboElement = CType(Combo1.Items(Combo1.SelectedIndex), ComboElement)
	Dim cb2 As ComboElement = CType(ComboBox1.Items(ComboBox1.SelectedIndex), ComboElement)

	TextBox1.Text = cb1.Code + cb2.Code

End Sub

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

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

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

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

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

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