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

ComboBox

بدأه hani78 في 15 سبتمبر 2010 · 6 رد · 1,431 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا

سؤالي اريد ان اضع كومبو بوكس لائحة اسماء يعني مثلا موبايل نوكيا, مويايل سامسونج , بمجرد ان اختار اسم الموبايل تظهر صورة خاصة بهذا المويايل اكون انا قد خصصت هذه الصوره مثلا لهذا الموبايل , او مثلا موبايل سامسونج بمجرد ان اختاره تظهر صوره موبايل السامسونج والذي خصصت الصوره له عند اختيار اسم الموبايل او مثلا يوجد اكثر من نوع موبايل فتظهر الصوره للموبايل الذي خصصت له

ارجو الرد وشكرا

#2

طبعا بدون ربط بقاعدة بيانات

شكرا

#3

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

اكتب الكود التالي بعد الضغط على الكومبوبوكس مرتين

 If ComboBox1.SelectedIndex = "0" Then
PictureBox1.Visible = True
 If ComboBox1.SelectedIndex = "1" Then
PictureBox2.Visible = True
    	End If

انا اعتبرت ان في الكومبوبوكس عنصير وانت يمكنك اضافة ما تريد من العناصر

بالتوفيق

Zefri Yahya - ArabTeam 2000

tpc7rzy94tx8iduak4b.png

#4

بسم اللهالرحمن الرحيم

اخى العزيز

اقتباس

If ComboBox1.Text = "الشتاء" Then

PictureBox1.Image = System.Drawing.Image.FromFile(Application.StartupPath & "\imgs\Sunset.jpg")

ElseIf ComboBox1.Text = "الصيف" Then

PictureBox1.Image = System.Drawing.Image.FromFile(Application.StartupPath & "\imgs\شعار التراث.jpg")

Else

PictureBox1.Image = System.Drawing.Image.FromFile(Application.StartupPath & "\imgs\5936.jpg")

End If

دى فكرة جميلة

بس عاوز اسال سوال لو عنده مثلا 100 صورة هيضيف 100 PictureBox1 ؟؟؟؟

و ده كود ممكن تجربه

If ComboBox1.Text = "الشتاء" Then
            PictureBox1.Image = System.Drawing.Image.FromFile(Application.StartupPath & "\imgs\Sunset.jpg")
        ElseIf ComboBox1.Text = "الصيف" Then
            PictureBox1.Image = System.Drawing.Image.FromFile(Application.StartupPath & "\imgs\شعار التراث.jpg")
        Else
            PictureBox1.Image = System.Drawing.Image.FromFile(Application.StartupPath & "\imgs\5936.jpg")
        End If
#5

اخي العزيز ..

يمكن ذلك باكثر من طريقة وكلها جميلة وجيده ..

اولها ::

باستخدام مصفوفة ..

نقوم بانشاء مصفوفة نصوص string تحتوي على مواقع الصور في الجهاز .. وعن طريقها يتم ربط العنصر داخل الcombo مع الصورة .. متى ما تختار الاسم تظهر لك الصورة ..

الكود التالي ..

Private ImgPaths() As String

ComboBox1.Items.Clear()
ComboBox1.Items.Add("Nokia")
ComboBox1.Items.Add("Sony")
ReDim ImagePaths(1)
ImgPaths(0) = "D:\Image1.jpg"
ImgPaths(1) = "D:\Image2.jpg"

في الكود اعلاه قمنا بتعريف الcombo واضافة عنصرين له وهي نوكيا وسوني .. وداخل المصفوفة عرفنا الصورتين الخاصة بكل منهما ..

شاهد التالي ..

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
  '
  ' Load picture from the file

  Try
    PictureBox1.Image = Image.FromFile(ImgPaths(ComboBox1.SelectedIndex))
  Catch ex As Exception

  End Try

End Sub

هنا قمنا بربط الاداة مع المصفوفة وعرفنا انه حسب الindex الخاص بالاداة يربط مع رقم الصورة ..

كانت هذه طريقة ..

الطريقة الثانية وهي اجمل ..

وهي ان تكون الصورة اصلا داخل Combo .. كما في الشكل ..

post-53367-048706600 1284633073_thumb.pn

وتمت هذه العلية بالشكل التالي ::

اضف الاداة واضف imageList الى المشروع وقم بخزن الصور فيها

وبعد ذلك

هذا الكود في الForm_Load وهو اننا نعرف فيه تغيير الخصائص ل Combo مع الImageList

Dim items(Me.ImageList1.Images.Count - 1) As String
        For i As Int32 = 0 To Me.ImageList1.Images.Count - 1
            items(i) = "Item " & i.ToString
        Next
        Me.ComboBox1.Items.AddRange(items)
        Me.ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
        Me.ComboBox1.DrawMode = DrawMode.OwnerDrawVariable
        Me.ComboBox1.ItemHeight = Me.ImageList1.ImageSize.Height
        Me.ComboBox1.Width = Me.ImageList1.ImageSize.Width + 18
        Me.ComboBox1.MaxDropDownItems = Me.ImageList1.Images.Count

وهذا الكود هو المسؤول عن الCombo

Private Sub ComboBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem
        If e.Index <> -1 Then
            e.Graphics.DrawImage(Me.ImageList1.Images(e.Index), _
                                     e.Bounds.Left, e.Bounds.Top)
        End If
    End Sub

    Private Sub ComboBox1_MeasureItem(ByVal sender As Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles ComboBox1.MeasureItem
        e.ItemHeight = Me.ImageList1.ImageSize.Height
        e.ItemWidth = Me.ImageList1.ImageSize.Width
    End Sub

وهي تمت بطريقة بسيطة عن طريق وضع الصورة داخل الاداة ..

المثال مرفق ولكن ب2010 ..

Images_combobox.rar

تحياتي العطرة وارجو ان يكون الرد افادك ..

المرفقات
aaaa.png

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#6

شكرا للجميع ردودهم

وشكرا على المعلومات القيمة التي استفدت منها

#7

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

أخي بعيد عن التعقيد وكثرة الأكواد والشروط يجب عليك تعبئة الكومبو بأسماء الصورة مثلاً تعبئة الكومبو

جوال

هاتف

سيارة

تفاحه

وأيضاً تجعل أسماء الصور نفسها في مجلد موجود مع المشروع اسمه imgs

جوال

هاتف

سيارة

تفاحه

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

PictureBox1.Image = System.Drawing.Image.FromFile(Application.StartupPath & "\imgs\" & combobox1.text & ".jpg")

ملاحظه يجب ان تكون الصور جميعها jpg

.. تحياتي

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