Страница: 1 | 2 |
Вопрос: Как осуществить фильтрацыю данных в List View
Добавлено: 25.05.09 14:21
Номер ответа: 17Автор ответа: Arvitaly
ICQ: 301746136 Вопросов: 28Ответов: 549
Web-сайт: okazani.ru Профиль | | #17
Добавлено: 26.05.09 02:54
Вот так лучше, на форму помести текстбокс с именем txtFilter, пикчебокс с именем pbfon и листвью с именем listview1
Dim marks()
Private Sub Form_Load()
pbfon.AutoRedraw = True
pbfon.BackColor = ListView1.BackColor
pbfon.ScaleMode = vbTwips
pbfon.BorderStyle = vbBSNone
pbfon.Visible = False
marks = Array("Micro Intel" , "Micro Amd" , "Memoria Usb" , "Impresora Epson" , "Monitor LG" , "DVD Samsung" )
For i = 0 To UBound(marks)
ListView1.ListItems.Add , , marks(i)
Next
txtFilter.Text = ""
End Sub
Sub markFind(find As String )
Dim i As Integer
For i = 0 To UBound(marks)
If InStr(1, LCase(marks(i)), find) > 0 And Len(find) > 0 Then
setBColorLVRow ListView1, i, &HFF&
Else
setBColorLVRow ListView1, i, ListView1.BackColor
End If
Next
End Sub
Function setBColorLVRow(lv As ListView, nRow As Integer , color As OLE_COLOR) As Integer
If nRow > ListView1.ListItems.Count Then setBColorLVRow = 1
If ListView1.ListItems.Count < 1 Then setBColorLVRow = 2
pbfon.Width = lv.Width
pbfon.Height = lv.ListItems(1).Height * (lv.ListItems.Count)
pbfon.ScaleHeight = lv.ListItems.Count
pbfon.ScaleWidth = 1
pbfon.DrawWidth = 1
pbfon.Line (0, nRow)-(1, nRow + 1), color, BF
lv.Picture = pbfon.Image
lv.Refresh
End Function
Private Sub txtFilter_Change()
markFind txtFilter.Text
End Sub
А по поводу и помоги с фильтром .ListItems.Add.SubItems(2) = .Fields("Firma"
Сначала покажи как ты заполняешь, может просто adodc1.recordset.filter="Firma like '%micro%'"
???
Ответить
Страница: 1 | 2 |
Поиск по форуму