المشروع عبارة عن اثنين ComboBox بالاضافة الى PictureBox
اريد ان اربط الكمبوبكس رقم واحد مع الكمبو بوكس 2 بحيث اضغط على القارة مثل اسياء يطلع لي في الكمبوبوكس 2 الدول الاسيوية فقط وكذلك صورة خريطة الدول او العلم مباشرة , وبنفس الطريقة للبقية .
الشكر مقدماً للجميع وتحياتي لكم احبتي.
ليس بالشئ الصعب ..
سيربط عن طريق Select Case
او جملة الشرط في حدث Combo1_ِClick
مثلا
PHP كود :
'--------------- ملئ الكومبو
Combo2.Clear
If Combo1.text = "آسيا" Then
Combo2.Items.Add "الصين"
Combo2.Items.Add "يابان"
'---------------- وضع الصورة
Dim file_name As String = Application.ExecutablePath
file_name = file_name.Substring(0, file_name.LastIndexOf("\bin")) & _
"\Map Asia.jpg"
'-------------- على أساس أن Map Asia.jpg هو إسم صورة خريطة آسيا و موجود في مجلد البرنامج
' Load the picture into a Bitmap.
Dim bm As New Bitmap(file_name)
' Display the results.
picImage.Image = bm
picImage.SizeMode = PictureBoxSizeMode.AutoSize
End If
حاولت استخدم جملة الشرط في حدث Combo1_ِClick
بس ما قبل ممكن لو تكرمت توضح لي عن طريق التعديل في المشروع وارسالة الى اكون شاكر لك لاانة سيفيدني كثير
هذا هو الكود كامل
فقط ألصقه في برنامجك و حاول فهمه
PHP كود :
Public Class Form1
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
'--------------- ملئ الكومبو
ComboBox2.Items.Clear()
If ComboBox1.Text = "اسياء" Then
ComboBox2.Items.Add("الصين")
ComboBox2.Items.Add("يابان")
'---------------- وضع الصورة
Dim file_name As String = Application.ExecutablePath
file_name = file_name.Substring(0, file_name.LastIndexOf("\bin")) & _
"\Map Asia.png"
'-------------- على أساس أن Map Asia.jpg هو إسم صورة خريطة آسيا و موجود في مجلد البرنامج
' Load the picture into a Bitmap.
Dim bm As New Bitmap(file_name)
PictureBox1.Image = bm
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
End If
End Sub
End Class
أنظر مرفق مثالك بعد التعديل
(14-12-13, 08:14 PM)mamas1 كتب : [ -> ]هذا هو الكود كامل
فقط ألصقه في برنامجك و حاول فهمه
PHP كود :
Public Class Form1
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
'--------------- ملئ الكومبو
ComboBox2.Items.Clear()
If ComboBox1.Text = "اسياء" Then
ComboBox2.Items.Add("الصين")
ComboBox2.Items.Add("يابان")
'---------------- وضع الصورة
Dim file_name As String = Application.ExecutablePath
file_name = file_name.Substring(0, file_name.LastIndexOf("\bin")) & _
"\Map Asia.png"
'-------------- على أساس أن Map Asia.jpg هو إسم صورة خريطة آسيا و موجود في مجلد البرنامج
' Load the picture into a Bitmap.
Dim bm As New Bitmap(file_name)
PictureBox1.Image = bm
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
End If
End Sub
End Class
أنظر مرفق مثالك بعد التعديل
طيب
برجاء أن تفهم الأكواد
سأبسط لك
ComboBox2.Items.Clear
نمسح الكومبو الخاص بالدول
If ComboBox1.Text = "اسياء" Then
يعني إذا كانت ComboBox1 الخاصة بالقارات فيها آسيا
إذن نفس الشيء
سوف تضع أسفل الأكواد الخاصة بآسيا
If ComboBox1.Text = "أوروبا" Then
ثم
If ComboBox1.Text = "إفريقيا" Then
.... إلخ
الله يبارك فيك اخي وماقصرت اناء فاهم الاكواد ولكن مااقصدة اخي الحبيب اريد اول ما يسشتغل الفورم تطلع القارة الاولي مثلاً اسياء ومقابلة الدول, وعنما انتقل الى القارة الثانية تطلع الدول مباشرة حق القارة التانية وتختفي الدولة الاولى الخاصة بالقارة الاول اتمنى ان تكون فكرتي واضحة
بحيث يكون الانتقال مباشرة وتلقائي تظهر دول القارة عند الانتقال من قارة الى اخرى وتختفي الدولة الاولي الخاصة بالقارة السابقة فقط ولك مني اجمل الشكر والمحبة .
نعم
وذلك بالكود أعلاه
عندما تكون كومبو 1 فيها آسيا يتم مسح كومبو 2
ComboBox2.Items.Clear()
ثم ملئها
ComboBox2.Items.Add("الصين")
ComboBox2.Items.Add("يابان")
ثم وضع الصورة
Dim file_name As String = Application.ExecutablePath
file_name = file_name.Substring(0, file_name.LastIndexOf("\bin")) & _
"\Map Asia.png"
'-------------- على أساس أن Map Asia.jpg هو إسم صورة خريطة آسيا و موجود في مجلد البرنامج
' Load the picture into a Bitmap.
Dim bm As New Bitmap(file_name)
PictureBox1.Image = bm
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
أي أن هذا ما تريده
لكني لا أفهم ....
أول ما تشتغل الفورم تملئ الأكواد و أنت قلتها
يعني
أول ما تشتغل الفورم Form_Load
تملئ الكومبو 1 بالقارات
ComboBox1.Items.Add("آسيا")
ComboBox1.Items.Add("أوروبا") ...
ثم عند تغير القيمة التي في ComboBox1 أي
ComboBox1_SelectedIndexChanged
يتم ملئ كومبو 2 بالدول المناسبة
أي بالضبط مسحها
ComboBox2.Items.Clear()
ثم ملئها
كمثال إذا كان ComboBox1 = "آسيا"
If ComboBox1.Text = "اسياء" Then
ComboBox2.Items.Add("الصين")
ComboBox2.Items.Add("يابان")
end If
أتمنى أن تتمكن من فهمي
هذا ربط ثابت فماذا لو أردنا إضافة دول أخرى أو قارات أخري