منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
حل مشكلة في التيكست بوكس - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : حل مشكلة في التيكست بوكس (/showthread.php?tid=19108)



حل مشكلة في التيكست بوكس - عبدالرحمن المكاوي - 04-02-17

بسم الله الرحمن الرحيم
-------------------------------
لديه مشكلة في اداة التيكست بوكس وهي انني قمت ببرمجة كود يقوم بتصفية او عملية بحث داخل اليست بوكس
بمعني انني لديه اكثر من 300 عنصر في اداة التيسكت بوكس فانا ساستخدم اداة التيسكت بوكس لتسهل علي المستخدم
البحث عن العنصر المراد البحث عنه
مثال بسيط اذ كان لديه العناصر التالية في اداة الليست بوكس
mohmaed
abdo
mohamud
amr
عندما اضع حرف m في التيسكت بوكس يختفي من الليست بوكس abdo , amr
ويبقي الباقي وعندما امسح m يعود اليست بوكس الي عناصره الكاملة
اريد تعديل هذا الكود بما سبق وقلته وشكرا لكم

PHP كود :
   Private Sub TextBox1_TextChanged(ByVal sender As ObjectByVal e As EventArgsHandles TextBox2.TextChanged
        Dim q 
As IEnumerable(Of DataRow) = (From x As DataRow In dt Where x.Item("Display").ToString.ToLower.StartsWith(Me.TextBox2.Text.Trim.ToLower))
 
       hold True
        Me
.ListBox1.DataSource = If(q.Count 0Nothingq.CopyToDataTable)
 
       Me.ListBox1.DisplayMember "Display"
 
       Me.ListBox1.ValueMember "Value"
 
       Me.ListBox1.SelectedIndex = -1
        hold 
False
    End Sub 



RE: حل مشكلة في التيكست بوكس - مساعدة - 04-02-17

السلام عليكم

جرب هذا التعديل
كود :
Private items() As String

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    items = (From x As String In ListBox1.Items).ToArray
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox1.TextChanged
    Me.ListBox1.Items.Clear()
    Dim txt As String = Me.TextBox1.Text.Trim.ToLower
    If TextBox1.Text.Trim = "" Then
        Me.ListBox1.Items.AddRange(items)
    Else
        Dim q = (From x As String In items Where x.ToLower.StartsWith(txt)).ToArray
        Me.ListBox1.Items.AddRange(q)
    End If
End Sub



RE: حل مشكلة في التيكست بوكس - عبدالرحمن المكاوي - 04-02-17

جميع كلمات "items" بها مشكلة


RE: حل مشكلة في التيكست بوكس - مساعدة - 04-02-17

جوابي على اساس مفهوم كلامك ان الليست بكس ليست مربوطة بالداتابيز.


RE: حل مشكلة في التيكست بوكس - عبدالرحمن المكاوي - 04-02-17

(04-02-17, 12:32 AM)khodor1985 كتب : السلام عليكم أخي العزيز ورحمة الله وبركاته
هل تريد البحث عن الإسم في الـ ListBox من خلال TextBox، هل هذا ما تريد؟
أما بالنسبة لظهور القيم التي تبدأ بحرف m في القائمة ذلك يعود للأداة StartsWith.

نعم اريد هذا وايضا الكود المكتوب اعلاه الذي وضعته انا كان يعمل ويعمل فترات واخري لا ما المشكل به


RE: حل مشكلة في التيكست بوكس - عبدالرحمن المكاوي - 04-02-17

(04-02-17, 12:36 AM)مساعدة كتب : جوابي على اساس مفهوم كلامك ان الليست بكس ليست مربوطة بالداتابيز.

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


RE: حل مشكلة في التيكست بوكس - عبدالرحمن المكاوي - 06-02-17

اين اصحاب الخبرة