تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] سؤال عن AutoComplete
#11
(17-12-21, 01:39 AM)معاند الحظ كتب : اخي ابو انس هل مشكلتك هي  ان الاكمال التلقائي لايضهر العنصر الاكثر تطابقا  في اعلى القائمة؟
ام ماذا لو سمحت

شكرا لك 
انا قمت بارفاق مشروع من شغل الزميل ابراهيم ايبو تظهر قائمة الاكمال التلقائي عند كتابة اول حرف ولكن لا تظهر اذا كتبنا حرف من منتصف الكلمة

(17-12-21, 01:44 AM)سعود كتب : استخدم جملة For تمر على كل الصفوف وايضا استخدم
.Contains
شكرا لك
لا 
لايمكن ذلك
اذا كنت تعتقد ان ذلك ممكن المثال موجود عند قم بالتعديل عليه او ارسل لنا الكود

طيب سأقول مشكلتي بالتفصيل
انا لدي برنامج محاسبة وببيعو شغال تمام
عند فتح فاتورة مثلا فاتورة مبيعات تستطيع اختيار اسم المادة بعدة طرق ومن بين هذه الطرق ان تقوم بكتابة اسم المادة مباشرة في العمود الخاص باسم المادة في الداتا جريد فيو ---- ولنفترض ان لدي المواد التالية (لابتوب توشبا كور3 - لابتوب اتش بي كور5 - ديل كور 7) طبعا هذا مثال
عند كتابة حرف اللام يظهر قائمة منسدلة تتحتوي اول مادتين لانهن يبدأن بحرف اللام
مطلبوب مني التعديل التالي
عند كتابة كلمة كور يجب ان تظهر المواد الثلاثة لانهن الثلاثة يحتوين كلمة كور
عند كتابة حرف لام يجب ان تظهر قائمة منسدلة تحتوي المواد الثلاثة لانهن يحتوين على حرف لام
انا لم استطع ايجاد طريقة ضمن autocomplet ولكن لا مشكلة لدي باي طريقة اخرى
مثلا ظهور ليست بوكس منبثق يحتوي اسماء المواد ولكن يجب ان يكون موقع الليست بوكس بنفس الموقع الذي تظهره ميزة autocomplet
سورس كود برنامج محاسبة ومبيعات احترافي  -  سورس كود تطبيق ارسال رصيد من الجوال B4A
سورس كود تطبيق مبيعات للجوال
تيليجرام   Abo_anas_kahwaji@
واتساب 00963951283515
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو
#12
(17-12-21, 02:06 AM)ابو انس كتب :
(17-12-21, 01:44 AM)سعود كتب : استخدم جملة For تمر على كل الصفوف وايضا استخدم
.Contains
شكرا لك
لا 
لايمكن ذلك
اذا كنت تعتقد ان ذلك ممكن المثال موجود عند قم بالتعديل عليه او ارسل لنا الكود
...........................................................
اذا كنت تبحث عن نص في قائمة ايا كانت مصدرها فتمر على كافة صفوفها وتشترط التضمين(كما اسميه)
خذ الفكرة  و جربها كماتريد.
PHP كود :
 Dim lst As New List(Of String)({"saud""ali""mady""najeh""aref""saad""mohammad""amjad"})
 
   Private Sub TextBox1_TextChanged(sender As ObjectAs EventArgsHandles TextBox1.TextChanged
        For Each h 
As String In lst.Where(Function(As String) (a.Contains(TextBox1.Text)))
 
           ListBox1.Items.Add(h)
 
       Next
    End Sub 
الرد }}}
#13
سعود شكرا لك هذا الكود رائع بقي لدي مشكلة وحيدة وهي اريد ان تظهر اداة listbox في مكان مناسب كما هو الحال في اوتوكومبليت
يعني في العمود الخاص بالمواد في الداتا جريد فيو قد اكتب في فاتورة واحدة 5 او 6 مواد او اكثر
يجب ان تظهر الليست بوكس في مكان مناسب لموقع الخلية التي اكتب بها او موقع مؤشر الكتابة
سورس كود برنامج محاسبة ومبيعات احترافي  -  سورس كود تطبيق ارسال رصيد من الجوال B4A
سورس كود تطبيق مبيعات للجوال
تيليجرام   Abo_anas_kahwaji@
واتساب 00963951283515
الرد }}}
تم الشكر بواسطة: سعود , سعود
#14
اخوي ابو انس
قمت باعادة تعديل المثال بخيث يمكن استخدام الاكمال التلقائي للتكست بوكس او الداتاجريد فيو
وايضا ارفقت معه فيديو للتوضيح اكثر جرب البرنامج واذا برضوه كان فيه مشكلة اتمنى تصور فيديو وترفقه في رد اذا حبيت
وللتاكيد وبعد التجربة اكثر من مرة فان المثال يعمل جيدا فيما خلا بعض الامور الصغيرة والتي اهمها انه لايدعم اللغة العربية
بصراحة لا ادري يمكن لاني وضعت ملف الاقتراجات في الريسورس 
عموما اتمنى تجرب البرنامج وتبلغني بالنتيجة 





تحميل البرنامج 
[attachment=27400]

الرد }}}
تم الشكر بواسطة: سعود , ابراهيم ايبو , ابراهيم ايبو
#15
(17-12-21, 06:51 AM)معاند الحظ كتب : اخوي ابو انس
قمت باعادة تعديل المثال بخيث يمكن استخدام الاكمال التلقائي للتكست بوكس او الداتاجريد فيو
وايضا ارفقت معه فيديو للتوضيح اكثر جرب البرنامج واذا برضوه كان فيه مشكلة اتمنى تصور فيديو وترفقه في رد اذا حبيت
وللتاكيد وبعد التجربة اكثر من مرة فان المثال يعمل جيدا فيما خلا بعض الامور الصغيرة والتي اهمها انه لايدعم اللغة العربية
بصراحة لا ادري يمكن لاني وضعت ملف الاقتراجات في الريسورس 
عموما اتمنى تجرب البرنامج وتبلغني بالنتيجة 





تحميل البرنامج 
رابط لايعمل .. الي فهمتو من كلامك انك رفعت لنا مشروع اين هو ..؟

http://vb4arb.com/vb/showthread.php?tid=28995
 في هذا الموضوع نجد نفس مشكلتي  بالضبط ونفس طلبي بالضبط

http://vb4arb.com/vb/showthread.php?tid=28995
 في هذا الموضوع نجد نفس مشكلتي  بالضبط ونفس طلبي بالضبط
سورس كود برنامج محاسبة ومبيعات احترافي  -  سورس كود تطبيق ارسال رصيد من الجوال B4A
سورس كود تطبيق مبيعات للجوال
تيليجرام   Abo_anas_kahwaji@
واتساب 00963951283515
الرد }}}
تم الشكر بواسطة:
#16
اخوي ابو انس
اسف على التاخر في الرد لاني لم استطع الدخول للمنتدى سوى اليوم
واسف على ازالة رابط المرفق في ردي السابق لاني اردت اقيام بمحاولة حل مشكلة اللغة العربية
وبعض المشاكل الاخرى

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

الان ، هذا المثال يعمل كـ AutoComplete لـTextBox و DataGridView مع امكانية اضهار
كل الاقتراحات التي تحتوي على النص المدخل في TextBox او DataGridView بغض النظر عن حالة الاحرف
فمثلا لو ادخلت الحرفين pr فسوف يعرض كل الكلمات الموجودة في ملف AutoComplete والتي تحتوي
على الحرفين pr بنفس الترتيب بغض النظر ان كانت في بداية او وسط او اخر الكلمة 


في الـ TextBox يعمل الاكمال التلقائي جيدا باللغتين العربية والانجليزية 
لكن في الـ DataGridView لايظهر سوى اقتراحات اللغة الانجليزية لاادري لماذا

لكي تضيف (تلصق) النص المقترح للاداة المستخدمة اضغط ctrl+v 

في النهاية يبقى عليك التعديل وتصحيح بعض الامور 
مثل عندما يتم الضغط على مفتاح BackSpace او Back

رابط تحميل المثال

.zip   AutoComplete.zip (الحجم : 89.49 ك ب / التحميلات : 14)

الرد }}}
تم الشكر بواسطة: سعود , سعود
#17
اذا كنت تقصد البحث في الكمبوبوكس
بواسطة حرف موجود في اي مكان في الكلمة
فهناك حل اخر  يقوم العمل

كود :
 Public listOnit

    Public listNew As List(Of String) = New List(Of String)()

Public Sub ComboBox_TextUpdate(COM As ComboBox)
       COM.Items.Clear()
       listNew.Clear()
       Try
           For Each item In listOnit

               If item.Contains(COM.Text) Then
                   listNew.Add(item)
               End If


           Next

           COM.Items.AddRange(listNew.ToArray())
           COM.SelectionStart = COM.Text.Length '- 2
           COM.Cursor = Cursors.Default
           COM.DroppedDown = True
       Catch ex As Exception

       End Try
   End Sub
ثم قم بتعبئة بيانات الكمبوبوكس في حدث Com1_Enter للكمبوبوكس بالطريقة المعروفة
واخر حدث هو Com1_TextUpdate للكمبوبوكس
تقوم فيه باستدعاء الدالة ComboBox_TextUpdate
كود :
 Private Sub Com1_TextUpdate(sender As Object, e As EventArgs) Handles Com1.TextUpdate
        ComboBox_TextUpdate(Com1)
    End Sub


يمكنك اختصار الكود كما تحب
الرد }}}
تم الشكر بواسطة: معاند الحظ , ابو انس
#18
جميل بارك الله فيك فكرة جيدة وجديدة علي

الرد }}}
تم الشكر بواسطة: alfaiz678 , ابو انس



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم