【发布时间】:2014-11-21 08:33:00
【问题描述】:
我的计划是使用 textbox_changed 事件搜索列表视图中的数据或项目,并消除文本框上不包含字符串的其他项目。但是当我在文本框中插入任何文本时,列表视图中的所有项目都消失或丢失,如果我清除所有文本框列表视图中的项目仍然丢失或没有项目..我在谷歌上搜索,并在谷歌上使用各种代码,但我的问题仍然是一样的。
这就是我将数据插入列表视图的方式:
Private Sub BtnOpenPCostumer_Click(sender As Object, e As EventArgs) Handles BtnOpenPCostumer.Click
Dim connection As OleDbConnection
Dim command As OleDbCommand
Dim data_reader As OleDbDataReader
connection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & App_Path & "\Costumer\PCostumer\PCostumer.accdb")
connection.Open()
command = New OleDbCommand("SELECT * FROM TblPCostumer", connection)
data_reader = command.ExecuteReader
If data_reader.HasRows Then
While data_reader.Read
Dim newitem As New ListViewItem()
newitem.Text = data_reader.GetValue(0)
newitem.SubItems.Add(data_reader.GetValue(1))
newitem.SubItems.Add(data_reader.GetValue(2))
newitem.SubItems.Add(data_reader.GetValue(3))
newitem.SubItems.Add(data_reader.GetValue(4))
ListView1.Items.Add(newitem)
End While
End If
End Sub
这就是我在列表视图中搜索数据的方式。
Private Sub TxtFindCostumer_TextChanged(sender As Object, e As EventArgs) Handles TxtFindCostumer.TextChanged
Dim TrueList As New List(Of ListViewItem)
ListView1.BeginUpdate()
If TxtFindCostumer.Text.Trim().Length = 0 Then
ListView1.Items.Clear()
For Each item In TrueList
ListView1.Items.Add(item)
Next
Else
ListView1.Items.Clear()
For Each item In TrueList
If item.Text.Contains(TxtFindCostumer.Text) Then
ListView1.Items.Add(item)
End If
Next
End If
ListView1.EndUpdate()
End Sub
我找到了许多使用此代码的解决方案,其他人使用此代码取得了成功,但对我来说不是……也许我在这里错过了一些东西……对不起我的英语不好……谢谢。
【问题讨论】: