03-10-12, 11:16 AM
كاتب الموضوع : BADRMEDIA
بسم الله الرحمن الرحيمالصلاة والسلام على المبعوث للأنام
السلام عليكم ورحمة الله وبركاته
===========================================
عندما تريد أن تجعل أداة صندوق السرد ( ComboBox ) تقوم بالإكمال التلقائي عندما يقوم المستخدم
بإدخال بيانات
كنا نكتب هذا الكود المشهور
كود :
If Char.IsControl(e.KeyChar) Then Return
With Me.ComboBox
Dim ToFind As String = .Text.Substring(0, .SelectionStart) & e.KeyChar
Dim Index As Integer = .FindStringExact(ToFind)
If Index = -1 Then Index = .FindString(ToFind)
If Index > -1 Then
.SelectedIndex = Index
.SelectionStart = ToFind.Length
.SelectionLength = .Text.Length - .SelectionStart
e.Handled = True
End If
End With
فى حدث ComboBox_KeyPress
هذا الكود يمكن بالفعل المستخدم من الاكمال التلقائى
لكن ماذا لو أدرت أن تجعل المستخدم يقوم بادخال للموجود فقط بحيث تكون الخاصية
لأداة صندوق السرد ( ComboBox ) كانها DropDownList
بحيث لو كتب حرف غير موجود فى العناصر لايكتب شئ فى الأداة
بباسطة بعد شرح طويل وجع دماغكم
أن لو البحث عاد بشئ ضع العنصر أمام المستخدم
إن لم يعود مترجعش بشئ ولا تدخل الحرف الجديد
ويكون الكود هكذا
كود :
If Char.IsControl(e.KeyChar) Then Return
With Me.ComboBox1
Dim ToFind As String = .Text.Substring(0, .SelectionStart) & e.KeyChar
Dim Index As Integer = .FindStringExact(ToFind)
If Index = -1 Then Index = .FindString(ToFind)
If Index > -1 Then
.SelectedIndex = Index
.SelectionStart = ToFind.Length
.SelectionLength = .Text.Length - .SelectionStart
e.Handled = True
Else
e.Handled = True
End If
End With
عملت لكم دوشة أنا عارف وطولت فى حاجة بسيطة
========================
بالمناسبة فى دوت نت 2005 هذه الخاصية أصبحت من ضمن الخصائص