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

سؤال ملح في Combobox

مغلق
بدأه blackghost في 23 سبتمبر 2005 · 5 رد · 625 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أريد بناء combobox شبيهة تماماً بالــ combobox الموجودة في المتصفح Internet Explorere (المكان الذي يتم فيه كتابة

عنوان الموقع URL)

فعند البدء بكتابة حرف ما نلاحظ أن القائمة تتوسع لتظهر كل العناصر(Items) التي تبدأ بهذا الحرف و عند كتابة حرف أخر فإن عدد العناصر يتغير تبعاً لعدد العناصر التي تبدأ بالجملة المكتوبة

و عند كتابة عنوان غير موجود فإن القائمة يتم إغلاقها

أريد ممن لديه الخبرة البرمجية المساعدة في بناء هذه الـــ Combobox

ملاحظة: العناصر مخزنة ضمن الــ Combobox نفسها و ليس ضمن قاعدة بيانات

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

#2

الاخ العزيز blackghost

انتظرني غدا وسوف ارسل لك كود بالكامل انا نفسى تعبت كثير وقبل ان احصل على الكود الخاص با Combobox كنت قد عملت شغلة ما حصلت وذلك لقلة الخبرة لدي وسارفق لك الكودين ان شاء الله

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

عمر المختار

اللهم انعم على بلادي بالأمن والأمان

#3

السلام عليك

تتمحور الفكرة و الطريقة بإستخدام كل من حدث الضغط على الزر وحدث تغير النص مع الخاصية DroppedDown

هذه الخاصية هي التي تجعل القائمة تنسدل أثناء الكتابة في خانة القائمة المنسدلة. بحيث نسند لها القيمة True

هذا قالب برمجي يقوم بالعمل المطلوب //

Imports System.EventArgs
Imports System.Exception
Imports System.Windows.Forms.ComboBox

Public Class AutoCompleteCBoxes
    'Auto Complete Combo Boxes
    Public ControlKey As Boolean = False

    Public Sub KPress(ByVal sender As Object, _
    ByVal E As KeyPressEventArgs)
        Dim comb As ComboBox = CType(sender, ComboBox)
        comb.DroppedDown = True
        If Asc(E.KeyChar) = Keys.Escape Then
            'Clear the Text
            comb.SelectedIndex = -1
            comb.Text = ""
            ControlKey = True
        ElseIf Char.IsControl(E.KeyChar) Then
            ControlKey = True
        Else
            ControlKey = False
        End If
    End Sub

    Public Sub TChange(ByVal s As Object, _
    ByVal e As EventArgs)
        Dim comb As ComboBox = CType(s, ComboBox)
        If comb.Text <> "" And Not ControlKey Then

            'Search for Matching entry
            Dim MT As String = comb.Text
            Dim Match As Integer = comb.FindString(MT)

            'If the Match Entry Found Insert it
            If Match <> -1 Then
                comb.SelectedIndex = Match

                'Select the Added Text so it can be replaced
                comb.SelectionStart = MT.Length
                comb.SelectionLength = comb.Text.Length - comb.SelectionStart
            End If
        End If
    End Sub
End Class

لتفسير تلك النصوص البرمجية راجع الرابط التالي

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

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

#4

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

الاخ العزيز اتمني ان يفي هذا المثال بالغرض

Auto Complete ComboBox.rar

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

عمر المختار

اللهم انعم على بلادي بالأمن والأمان

#5

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

الاخ العزيز اتمني ان يفي هذا المثال بالغرض

Auto Complete ComboBox.rar

وهذا الكود قد استخدمته عندما لم اجد حلا وذلك لقلة خبرتي ولكن فيه شي من الابداع " الخداع" حيث اني استخدمت textbox وlistbox وصدقني هو جدير بالاهتمام واتمنى ان ينال اعجابك وان تدعوا لكل من مد لك يد العون وان لم يوفق ورمضان كريم

textbox_and_listbox.rar

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

عمر المختار

اللهم انعم على بلادي بالأمن والأمان

#6

كل الشكر للأخ عبد الجليل العقوري :rolleyes:

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

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