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

نسخة كاملة : بحث بالكومبو بوكس لا ى جزء من النص
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
بحث بالكومبو  بوكس لا ى جزء من النص وليس اول حرف فقط
(13-12-23, 02:08 PM)Lathe1 كتب : [ -> ]بحث بالكومبو  بوكس لا ى جزء من النص وليس اول حرف فقط

ما رايك بالكود:
PHP كود :
Private Sub ComboBox1_TextChanged(sender As ObjectAs EventArgsHandles ComboBox1.TextChanged
     
For As Integer 0 To ComboBox1.Items.Count 1
         Dim t 
As String ComboBox1.Items(i).ToString
         
If t.Contains(ComboBox1.TextThen
             ComboBox1
.SelectedIndex i
             
Exit For
 
        End If
 
    Next
 End Sub 
الكود لم يعمل
اخوي جرب الكود هذا  وان شاء الله راح تقدر تبحث بالكومبوبوكس بواسطة اي جزء من النص
طبعا انا عملت هذا المثال بالطريقة التالية
فقط عنصر كومبوبوكس وضعته على النموذج
قمت بتعبئتة بعناصر عشوائية مثل الارقام والايام وهكذا

عدلت الخصائص التالية في الكومبوبوكس
كود :
AutoCompleteMode= Append

AutoCompleteSource= ListItems

DropDownStyle=DropDown



الان بقي كتابة الكود
كود :
Public Class Form1

   Dim tmpText As String = ""
   Dim IsDeleting As Boolean

   Private Sub cboFind_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles cboFind.KeyDown
       If e.KeyCode = Keys.Enter Then
           cboFind.DroppedDown = False
           cboFind.SelectionStart = cboFind.Text.Length
           cboFind.Text = tmpText
           tmpText = ""
       ElseIf e.KeyCode = Keys.Back Then
           IsDeleting = True
           If tmpText.Length > 0 Then
               tmpText = tmpText.Substring(0, tmpText.Length - 1)
           End If
       Else
           IsDeleting = False
       End If
   End Sub

   Private Sub cboFind_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles cboFind.KeyPress
       If Not IsDeleting Then
           cboFind.DroppedDown = True
           tmpText += e.KeyChar
           If cboFind.SelectedText.Length > 0 Then
               cboFind.Text = tmpText
           End If
       End If
   End Sub

   Private Sub ComboBox1_TextChanged(sender As Object, e As System.EventArgs) Handles cboFind.TextChanged
       Dim retval As Integer
       retval = cboFind.FindStringExact(tmpText)
       If retval > -1 Then
           cboFind.SelectedIndex = retval
           cboFind.SelectAll()
       Else
           '  match any text starts with tmpText
           retval = cboFind.FindString(tmpText)
           If retval > -1 Then
               cboFind.Text = cboFind.Items(retval)
               cboFind.SelectAll()
           Else
               For Each itm As String In cboFind.Items
                   If itm.Contains(tmpText) Then
                       cboFind.Text = itm
                       cboFind.SelectAll()
                       Exit For
                   End If
               Next
           End If
       End If
   End Sub

   Private Sub cboFind_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles cboFind.MouseClick
       tmpText = ""
       cboFind.SelectAll()
   End Sub

   Private Sub cboFind_Validated(sender As Object, e As System.EventArgs) Handles cboFind.Validated
       tmpText = ""
   End Sub
End Class

جرب وحاول تعدله بحسب ماتريد