2016-11-03 20 views
-1

私は多くの項目を持つリストビューを持っていて、リストビューにAgeという名前の列があります。私は2つのテキストボックスを使用して特定の年齢のアイテムを検索したい。たとえば、textbox1の値が20、textbox2-30と入力されます.20歳、21歳、22歳、30歳のリストビューの項目に表示されます。ユーザー入力の基準に基づいてリストビュー項目を検索します。

答えて

0

コレクションをループして項目値と評価する。それが基準に一致している場合 -

Dim min as integer = Integer.Parse(txtMin.Text) 
Dim max as integer = Integer.Parse(txtMax.Text) 
For Each person as PersonInfo in myPersonList 
    If person.Age >= min AndAlso person.Age <= max Then 
     myListview.Items.Add(. . . . . .) 
    End If 
Next 

をリストビューに追加し、あなたはリストビューで、すでにアイテムを持っている場合、あなたはこのトリックを行うことができます

For Each item as ListViewItem in myListview.Items 
    ' here it is depends on where is your column located 
    Dim age As Integer = Integer.Parse(item.[SubItems(..)].Text) 
    If age >= min AndAlso age <= max Then 
     item.BackColor = Color.Yellow ' - highlight items that meet criteria 
    End If 
Next 

ちょうどItemがテキストを持っているとSubitemsを持つことができることを覚えておいてください。あなたのコラムがどこにあるかによって異なります - 私たちはあなたの投稿からこれを知りません - あなたは使用する必要がありますitem.SubItems(i).Text

そして今、私はそれを試していませんが動作する必要があります。あなたのリストビューへの動的負荷

Dim itemList As List(Of ListViewItem) ' -- your item database so to speak 
' Add your items to it and not to list view 
' Then, when button_click happens, use LINQ 
myListview.Items.Clear() 
itemList.Where(
    Function(item) 
     Dim age As Integer = Convert.ToInt32(item.[SubItems(..)].Text) 
     Return (age >= min AndAlso age <= max) 
    End Function).ToList().ForEach(Sub(item) myListview.Items.Add(Item)) 

次の2つのリストビュー、年齢をdiplays 1を持ち、もう一方は分&最大以内にあなたの選択した年齢層を表示している場合、これは基準

0

に一致する項目のみをリストに移入されます以下のコードを使用することができます。

Dim min As Integer = CInt(txtMin.Text) 
Dim max As Integer = CInt(txtMax.Text) 
For Each itm In CoursesList.Items 
    If CInt(itm) > min And CInt(itm) < max Then 
     CoursesList.Items.Add(itm) 
    End If 
Next 
関連する問題