vb 判断ListView关键字

来源:百度知道 编辑:UC知道 时间:2024/07/02 10:05:50
我用timer表一直读取并刷新数据 然后加载到ListView中...
列首是:
姓名 年龄 城市 审核

要考虑的是,每秒数据都在刷新,可能增加数据和减少数据,还有可能数据中的字符改变...
例如:
姓名 年龄 城市 审核
张雨 22 上海 通过

上面这个是3秒前的数据
3秒后也就是第二次刷新后是:
姓名 年龄 城市 审核
张雨 22 上海 未通过

我整个意思就是要判断 每一条数据的第四字段...
如果是未审核就msg提示...不过只提示一次,因为数据一直在变化着...
所以提示后,要把未通过的姓名添加到数组中,每次刷新后继续判断,如果任意一条数据的第4字段未通过,那就要对比数组中的名字,如果已经提示过了,就不再提示了...
大概意思就是这样...

其实我还有一种想法:
就是每次读取并刷新列表后,判断每一条数据的审核状态,如果是未通过则提示,同时把姓名和审核状态 添加到数组中,下次刷新时,提示前要先对比数组中是否已经存在,也就是已经提示过了,如果已经存在则不提示...

这样的话,数组会一直增加数据,会堆积,下面就是删除...
因为我设置了双点ListView中任意一条数据就删除掉那条数据,在这时,就要在数组中把删除的那条数据清理掉...

我感觉我说的很明白了...
希望会弄的帮帮我...谢谢!!

为了达到上述目的,可分二步完成:
一、建立一个模块,复制下面代码到模块中:
Option Explicit
Dim XmLst As String

Public Function TestStat(Lvw As ListView)
Dim i, sh As String, xm As String
If XmLst = "" Then XmLst = XmLst & ","
For i = 1 To Lvw.ListItems.Count
xm = Lvw.ListItems(i).Text
sh = Lvw.ListItems(i).SubItems(3)
If sh = "未通过" Then
If InStr(XmLst, "," & xm & ",") = 0 Then
XmLst = XmLst & xm & ","
MsgBox xm & "未审核通过!", vbOKOnly, "提示"
End If
End If
DoEvents
Next
End Function

Public Function ClearXmlst(Lvw As ListView)
Dim xm As String
On Error GoTo 1
xm = Lvw.SelectedItem.Text
XmLst = Replace(XmLst, "," & "xm" & ",", ",")
1:
End Function

二、调用举例: