Private Declare Function SendMessagebyString Lib _
"user32" Alias "SendMessageA" (ByVal hWND As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As String) As Long
Public Sub Get_Value(Byval strValue As String)
Dim n As Long
'删除 ListBox 过时数据
If List1.ListCount > 1000 Then
List1.RemoveItem IIf(Text1.Tag = "0", 1, 0)
End If
n = SendMessagebyString(List1.hWnd, LB_FINDSTRINGEXACT, -1, strValue)
If n = -1 Then '新值
List1.AddItem strValue
List1.ItemData(List1.NewIndex) = 1 '计数器
List1.ListIndex = List1.NewIndex
Else '已有值
List1.ItemData(n) = List1.ItemData(n) + 1 '计数器+1
List1.ListIndex = n
End If
If List1.ItemData(List1.ListIndex) > Val(Text1.Tag) Then
Text1 = List1.List(List1.ListIndex)
Text1.Tag = List1.ItemData(List1.ListIndex)
End If
End Sub
'每一个新物体称重最好有一个按钮清除旧数据,特别是重量相近的情况下。
Private Sub cmdRefresh_Click()
List1.Clear
End Sub