PDA

View Full Version : سوال: سرچ در آیتم های لیست ویو



xminxmin
یک شنبه 04 خرداد 1393, 19:27 عصر
سلام.
شاید سوالم خیلی خیلی مبتدی باشه. ولی خب تا حالا برنخورده بودم. ببخشید :لبخند:
یک ListView داریم و یک Textbox
در رویداد TextChange تکستباکس کدی رو نوشتم برای سرچ آیتم بصورت اتوماتیک. این کدش:



Private Sub txtSearch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged


With lvList
For i As Integer = .Items.Count - 1 To 0 Step -1
If .Items(i).Text.ToLower.StartsWith(txtSearch.Text.T oLower) Then
.Items(i).Selected = True
End If
Next
End With
End Sub


سوال: این کد عمل جستجو رو کاملا درست انجام می ده.
مشکل اینه که وقتی آیتم پایین تر یا بالاتر از محدوده نمایش داده شده باشه. بصورت اتوماتیک نمیره در محدوده آیتم.
اگر اسکرول رو جابجا کنید می بینید که اون آیتم پیدا و انتخاب هم شده

راه حل مشکل چیه؟

xminxmin
دوشنبه 05 خرداد 1393, 09:10 صبح
پس زیادم سوتام مبتدیانه نبوده!
جوابی نیست براش؟
اساتید مددی!!!

xminxmin
چهارشنبه 07 خرداد 1393, 10:53 صبح
حل شد !
راه حل رو میزارم بقیه هم بدونند.
نکته 1: برای HighLight شدن آیتم یافته شده باشد این خاصیت از ListView رو تنظیم کنید

ListView1.HideSelection=False

حالا کد جستجو


Private Sub txtSearch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged
For i As Integer = lvList.Items.Count - 1 To 0 Step -1
If lvList.Items(i).Text.ToLower.StartsWith(txtSearch. Text.ToLower) Then
lvList.Items(i).Selected = True
lvList.EnsureVisible(lvList.SelectedIndices(0) 'نمایان کردن آیتم انتخابی
End If
Next
End Sub