منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ملأ الكومبوبكس اثناء الكتابة عليه و items تأخذ من البحث
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
السلام عليكم 
كيف حال الجميع ؟
كيف يمكنني ان املأ الكومبوبكس اثناء الكتابة عليه حيث كل ما اضغط على حرف يقوم بعملية البحث و في نفس الوقت يقوم بحذف نتائج البحث  القديمة و يملأ الجديدة
لقد استعملت التالي لكن لم يعطني النتيجة المرجوة حيث يقوم بتكرار items  في كل مرة 
كود :
Me.Nom_pBindingSource.Filter = "nom_p LIKE '%" & Me.ComboBox1.Text.Trim & "%'"
       For fil = 0 To Me.Nom_pBindingSource.Count - 1
           Me.ComboBox1.Items.Add(Me.Nom_pBindingSource(fil)("nom_p"))
Next
قمت بإضافة الكود التالي بعد عملية الفلترة لكنه لم ينجح الامر 
كود :
Me.ComboBox1.Items.Clear()
وعليكم السلام ورحمة الله وبركاته

كل ما عليك استخدام الكود بهذا الشكل
كود :
       Nom_pBindingSource.Filter = "nom_p LIKE '%" & Me.ComboBox1.Text.Trim & "%'"
       ComboBox1.Items.Clear()
       For fil = 0 To Me.Nom_pBindingSource.Count - 1
           ComboBox1.Items.Add(Nom_pBindingSource(fil)("nom_p"))
       Next

تحياتى لك
وتمنياتى لك التوفيق
هل تقصد الاكمال التلقائى للبيانات المحملة فى الكمبوبوكس ؟
اخي elgokre شكرا على مرورك العطر
لكن الكود لم ينجح معي بهذه الطريقة لانه يقوم بحذف التكست الموجود داخل الكومبوبكس و لا يظهر النافذة المنسدلة للاكمال التلقائي

استاذ mero5000 نعم الاكمال التلقائي للبيانات لكن بشرط 
الكومبوبكس لا يمتلأ حتى اقوم بالكتابة عليه و كلما اضغط على حرف تبدأ عملية البحث عن السجلات  و من ثم يُملأ الكومبوبكس بنتيجة البحث حتى يتم ايجاد السجل المراد...ارجوا اني قربت لك الفكرة
(30-08-18, 03:45 PM)larbihamri كتب : [ -> ]اخي elgokre شكرا على مرورك العطر
لكن الكود لم ينجح معي بهذه الطريقة لانه يقوم بحذف التكست الموجود داخل الكومبوبكس و لا يظهر النافذة المنسدلة للاكمال التلقائي

استاذ mero5000 نعم الاكمال التلقائي للبيانات لكن بشرط 
الكومبوبكس لا يمتلأ حتى اقوم بالكتابة عليه و كلما اضغط على حرف تبدأ عملية البحث عن السجلات  و من ثم يُملأ الكومبوبكس بنتيجة البحث حتى يتم ايجاد السجل المراد...ارجوا اني قربت لك الفكرة

بعد وضوع ما تريده



فى هذه الحالة انت لا تحتاج الى عملية تفريغ اى لا تحتاج الى هذا السطر
كود :
      ComboBox1.Items.Clear()

كل ما عليك فعله التالى
فى حدث KeyDown لما تقوم به عند الكتابة

كل ما عليك ان تجعل كود البحث بداخله بهذا الشكل
كود :
If e.KeyCode = Keys.Enter Then
      Nom_pBindingSource.Filter = "nom_p LIKE '%" & Me.ComboBox1.Text.Trim & "%'"
      For fil = 0 To Me.Nom_pBindingSource.Count - 1
          ComboBox1.Items.Add(Nom_pBindingSource(fil)("nom_p"))
      Next
end if

وبكده عند اتمام الانتهاء من الكتابة فقط اضغط Enter
وستجد انه قام ببداء البحث وقائم باضافة النتائج الى الكمبو

اتمنى ان تكون الفكرة مبسطة ووضحة لك

تحياتى لك
وتمنياتى لك التوفيق
اخي elgokre
الفكرة التي في راسي انني لا اضغط على زر الانتر كل ما انتهي من الكتابة
اريد ان يقوم بالبحث و ملا نتائج البحث تزامنا مع عملية الكتابة 
لقد جربت الكود في حدث TextChanged و عمل الكود بطريقة جميلة
لكن المشكلة التي ظهرت من جديد هي انه عند الضغط على زر backe space و مسح كل التكست الخاص بالكومبو بكس يمتلأ الكومبوبكس بكل السجلات الموجودة في جدول قاعدة البيانات كما ان لو كانت الكومبوبكس مفتوحة و اردت الكتابة فانه يظهر نافذة اخرى فوق تلك المفتوحة


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

اقصد كودك هذا كاملا بميثود  فى اللود فروم
كود :
Me.Nom_pBindingSource.Filter = "nom_p LIKE '%" & Me.ComboBox1.Text.Trim & "%'"
(30-08-18, 05:08 PM)larbihamri كتب : [ -> ]اخي elgokre
الفكرة التي في راسي انني لا اضغط على زر الانتر كل ما انتهي من الكتابة
اريد ان يقوم بالبحث و ملا نتائج البحث تزامنا مع عملية الكتابة 
لقد جربت الكود في حدث TextChanged و عمل الكود بطريقة جميلة
لكن المشكلة التي ظهرت من جديد هي انه عند الضغط على زر backe space و مسح كل التكست الخاص بالكومبو بكس يمتلأ الكومبوبكس بكل السجلات الموجودة في جدول قاعدة البيانات كما ان لو كانت الكومبوبكس مفتوحة و اردت الكتابة فانه يظهر نافذة اخرى فوق تلك المفتوحة


نعم اخى الفاضل عند مسح المحتوى يقوم بالتفريغ واعادة جميع الاستعلام

والسبب ان كل ضغطة بزر BackSpace تعتبر متغير فى حروف الكتابة ومنها يقوم باعادة الاستعلام مجدداً

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

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

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

تحياتى لك
وتمنياتى لك التوفيق
الفكرة كالأتي :
الكومبوبكس يكون فارغا لا يوجد فيه اي item
عند الكتابة عليه تبدأ عملية البحث بناءا الحروف المدخلة و في نفس الوقت يتم ملأ الكومبوبكس بنتيجة البحث عند الضغط على كل حرف
 هذا الكود يعمل بطريقة جيدة  في حدث TextChanged
كود :
Nom_pBindingSource.Filter = "nom_p LIKE '%" & Me.ComboBox1.Text.Trim & "%'"
     For fil = 0 To Me.Nom_pBindingSource.Count - 1
         ComboBox1.Items.Add(Nom_pBindingSource(fil)("nom_p"))
     Next

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

و عندما اقوم بالكتابة و النافذة منسدلة تظهر لي نافذتين كما في الصورة 
الصفحات : 1 2 3