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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (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=15876)

الصفحات: 1 2


استفسار في التيكست بوكس - عبدالرحمن المكاوي - 22-05-16

بسم الله الرحمن الرحيم 
-----------------------------------------
عندي استفسار داخل اداة التيكست بوكس وهو اني اريد عمل هذه الاداة كنوع من البحث بمعني

اني اريد عندما اكتب في الاداة حرف B يظهر لي جميع ال Iteam التي تحتوي علي حرف B داخل اداة الليست بوكس 

المثال في الصور واحب ان
---------------------------------------------------
اوضع اكثر انا عندي مثلا اكثر من 300 Iteam في الليست بوكس واريد تسهيل عملية الحصول عليه 

فاريد عندما اكتب حرف B مثلا يحذف الليست بوكس جميع Iteam التي لايبدء اولها بي حرف B وعندما اشيله يرجع الليست بوكس الي اصله 







RE: استفسار في التيكست بوكس - Abou Eman - 22-05-16

(22-05-16, 06:09 PM)amgad525 كتب :
PHP كود :
Public Class Form1

    Dim dt 
As New DataTable()

 
   Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

        dt
.Columns.AddRange(New DataColumn() {New DataColumn("Display"), New DataColumn("Value")})

 
       Dim wc As New Net.WebClient() With {.Encoding System.Text.Encoding.UTF8}
 
       Dim src As String wc.DownloadString("http://arab-live.ucoz.net/Test.txt")

 
       For Each str As String In src.Split(vbLf)
 
           Dim splt() = Split(str",")
 
           Dim r As DataRow dt.NewRow
            If splt
.Count 0 Then r.Item("Display") = splt(0) Else r.Item("Value") = ""
 
           If splt.Count 1 Then r.Item("Value") = splt(1) Else r.Item("Value") = ""
 
           dt.Rows.Add(r)
 
       Next

        Me
.ListBox1.DataSource dt
        Me
.ListBox1.DisplayMember "Display"
 
       Me.ListBox1.ValueMember "Value"
 
       Me.ListBox1.SelectedIndex = -1

    End Sub


    Dim hold 
As Boolean

    Private Sub TextBox1_TextChanged
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles TextBox1.TextChanged
        hold 
True

        Dim q 
As IEnumerable(Of DataRow) = (From x As DataRow In dt Where x.Item("Display").ToString.ToLower.StartsWith(Me.TextBox1.Text.Trim.ToLower))

 
       Me.ListBox1.DataSource = If(q.Count 0Nothingq.CopyToDataTable)
 
       Me.ListBox1.DisplayMember "Display"
 
       Me.ListBox1.ValueMember "Value"
 
       Me.ListBox1.SelectedIndex = -1

        hold 
False
    End Sub

    Private Sub ListBox1_SelectedIndexChanged
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ListBox1.SelectedIndexChanged
        If hold Then 
Exit Sub
        Try
            Dim s 
As String Me.ListBox1.SelectedValue
            If s 
<> "" Then Process.Start(s)
 
       Catch ex As Exception
        End 
Try
 
   End Sub

End 
Class 

linq Smile


RE: استفسار في التيكست بوكس - عبدالرحمن المكاوي - 22-05-16

(22-05-16, 09:26 PM)%Eman% كتب :
(22-05-16, 06:09 PM)amgad525 كتب :
PHP كود :
Public Class Form1

    Dim dt 
As New DataTable()

 
   Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

        dt
.Columns.AddRange(New DataColumn() {New DataColumn("Display"), New DataColumn("Value")})

 
       Dim wc As New Net.WebClient() With {.Encoding System.Text.Encoding.UTF8}
 
       Dim src As String wc.DownloadString("http://arab-live.ucoz.net/Test.txt")

 
       For Each str As String In src.Split(vbLf)
 
           Dim splt() = Split(str",")
 
           Dim r As DataRow dt.NewRow
            If splt
.Count 0 Then r.Item("Display") = splt(0) Else r.Item("Value") = ""
 
           If splt.Count 1 Then r.Item("Value") = splt(1) Else r.Item("Value") = ""
 
           dt.Rows.Add(r)
 
       Next

        Me
.ListBox1.DataSource dt
        Me
.ListBox1.DisplayMember "Display"
 
       Me.ListBox1.ValueMember "Value"
 
       Me.ListBox1.SelectedIndex = -1

    End Sub


    Dim hold 
As Boolean

    Private Sub TextBox1_TextChanged
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles TextBox1.TextChanged
        hold 
True

        Dim q 
As IEnumerable(Of DataRow) = (From x As DataRow In dt Where x.Item("Display").ToString.ToLower.StartsWith(Me.TextBox1.Text.Trim.ToLower))

 
       Me.ListBox1.DataSource = If(q.Count 0Nothingq.CopyToDataTable)
 
       Me.ListBox1.DisplayMember "Display"
 
       Me.ListBox1.ValueMember "Value"
 
       Me.ListBox1.SelectedIndex = -1

        hold 
False
    End Sub

    Private Sub ListBox1_SelectedIndexChanged
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ListBox1.SelectedIndexChanged
        If hold Then 
Exit Sub
        Try
            Dim s 
As String Me.ListBox1.SelectedValue
            If s 
<> "" Then Process.Start(s)
 
       Catch ex As Exception
        End 
Try
 
   End Sub

End 
Class 

linq Smile
مش ده طلبي


RE: استفسار في التيكست بوكس - عبدالرحمن المكاوي - 22-05-16

ياخي افهمني مش طلبي ده اقرء المكتوب كويس


RE: استفسار في التيكست بوكس - عبدالرحمن المكاوي - 23-05-16

ياجماعة حدا يساعدني في حل هذه المشكلة


RE: استفسار في التيكست بوكس - Abou Eman - 23-05-16

جرب الكود ده قولى النتيجة


Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

Dim items = From it In ListBox1.Items.Cast(Of Object)()
Where it.ToString().IndexOf(TextBox1.Text, StringComparison.CurrentCultureIgnoreCase) >= 0
Dim matchingItemList As List(Of Object) = items.ToList()
ListBox1.BeginUpdate()
ListBox1.Items.Clear()
For Each item In matchingItemList
ListBox1.Items.Add(item)
Next
ListBox1.EndUpdate()

End Sub


RE: استفسار في التيكست بوكس - amgad525 - 23-05-16

PHP كود :
Private Sub TextBox1_TextChanged(ByVal sender As ObjectByVal e As EventArgsHandles TextBox1.TextChanged
    
Static myList As Array
    If 
IsNothing(myListThen myList Me.ListBox1.Items.OfType(Of String).ToArray
    Me
.ListBox1.Items.Clear()
    
Me.ListBox1.Items.AddRange((From x As String In myList Where x.ToLower.StartsWith(Me.TextBox1.Text.Trim.ToLower)).ToArray)
End Sub 



RE: استفسار في التيكست بوكس - عبدالرحمن المكاوي - 24-05-16

(23-05-16, 12:05 PM)amgad525 كتب :
PHP كود :
Private Sub TextBox1_TextChanged(ByVal sender As ObjectByVal e As EventArgsHandles TextBox1.TextChanged
    Static myList 
As Array
 
   If IsNothing(myListThen myList Me.ListBox1.Items.OfType(Of String).ToArray
    Me
.ListBox1.Items.Clear()
 
   Me.ListBox1.Items.AddRange((From x As String In myList Where x.ToLower.StartsWith(Me.TextBox1.Text.Trim.ToLower)).ToArray)
End Sub 
شكرا شكرا علي مجهوداتك الكود اشتغل تمام

(24-05-16, 12:21 PM)عبدالرحمن المكاوي كتب :
(23-05-16, 12:05 PM)amgad525 كتب :
PHP كود :
Private Sub TextBox1_TextChanged(ByVal sender As ObjectByVal e As EventArgsHandles TextBox1.TextChanged
    Static myList 
As Array
 
   If IsNothing(myListThen myList Me.ListBox1.Items.OfType(Of String).ToArray
    Me
.ListBox1.Items.Clear()
 
   Me.ListBox1.Items.AddRange((From x As String In myList Where x.ToLower.StartsWith(Me.TextBox1.Text.Trim.ToLower)).ToArray)
End Sub 
شكرا شكرا علي مجهوداتك الكود اشتغل تمام
لكن عن ربط البرنامج بقاعدة داتا سورس وكتابت اي حرف انظر ماذا يحدث



RE: استفسار في التيكست بوكس - عبدالرحمن المكاوي - 24-05-16

المرجو حل في اسرع وقت


RE: استفسار في التيكست بوكس - سعود - 24-05-16

(24-05-16, 03:39 PM)عبدالرحمن المكاوي كتب : المرجو حل في اسرع وقت

قم بالغاء ارتباط الليست بوكس بالداتاسورس قبل  تنظيف محتويات الليست بوكس.