'在窗体里面加两个CommandButton和一个ListBox Private Sub Command1_Click() Dim i As Long For i = 1 To 100 List1.AddItem CStr(i), 0 Next i End SubPrivate Sub Command2_Click() List1.AddItem "101", 0 If List1.ListCount > 100 Then List1.RemoveItem 100 End Sub
没有到100条的时候,for i=1 to list1.listcount(总数) list1.list(i)=list1.list(i-1)(将每条记录下移一位) next list1.list(0)=你要添加的新内容 当到大于100的时候for i=1 to 100 list1.list(i)=list1.list(i-1)(将每条记录下移一位) next list1.list(0)=你要添加的新内容(将最上面的一条赋值)
Private Sub Command1_Click() List1.AddItem Now(), 0 If List1.ListCount > 100 Then For i = 100 To List1.ListCount - 1 List1.RemoveItem i Next End If End Sub在超过一百条删除时,我用了一个循环,是因为怕你的程序在别的地方会增加list的数据,如果你确信你的程序中没有这种情况,只有command1能够增删list的数据,那么上面的循环语句可以省略,简化成一句: If List1.ListCount > 10 Then List1.RemoveItem 100
哦。打错了。Private Sub Command1_Click() List1.AddItem Now(), 0 If List1.ListCount > 100 Then For i = 100 To List1.ListCount - 1 List1.RemoveItem i Next End If End Sub在超过一百条删除时,我用了一个循环,是因为怕你的程序在别的地方会增加list的数据,如果你确信你的程序中没有这种情况,只有command1能够增删list的数据,那么上面的循环语句可以省略,程序简化成:Private Sub Command1_Click() List1.AddItem Now(), 0 If List1.ListCount > 100 Then List1.RemoveItem 100 End Sub
if list1.listcount<100 then list1.additem( 增加一条纪录) for i=0 to list1.listcount(总数) list1.list(i+ 1)=list1.list(i)(将每条记录下移一位) next list1.list(0)=你要添加的新内容 end if if list1.listcount > = 100 then list1.removeitem( 删除最后一条) list1.additem for i= 0 to 100 list1.list(i+1)=list1.list(i)(将每条记录下移一位) next list1.list(0)=你要添加的新内容(将最上面的一条赋值) end if
goodname008(卢培培,想学好VB)的方法是可行的,但是这里的需求是逆序,而且是当additem的时候进行排列,所以这里不适合用aiguo25(青春无悔)的方法逻辑没有错误,但是似乎不能通过修改XXX.List(x)的方法来修改该item的值。有的话还望告知:Dlsftest()的方法不错,已经满足需求了。 lazycat818(lazycat818)分析的也很好啊,但是似乎绕不开先删除,后添加这条路。 不过还好,这里数据量也不是很大,凑合着用吧 :P我最后自己写的代码是: StateList.ListCount While StateList.ListCount> 0 i = StateList.ListCount- 1 If i < 100 Then StateList.AddItem StateList.List(i), StateList.ListCount End If StateList.RemoveItem (i) StateList.ListCount = StateList.ListCount- 1 Wend StateList.AddItem ListString, 0呵呵,VB刚开始学用了一个星期,现在东西做完了,不知道什么时候会再用了,也许VB.net吧:D再次感谢大家!
Private Sub Command1_Click()
Dim i As Long
For i = 1 To 100
List1.AddItem CStr(i), 0
Next i
End SubPrivate Sub Command2_Click()
List1.AddItem "101", 0
If List1.ListCount > 100 Then List1.RemoveItem 100
End Sub
每次刷卡,ListBox里增加一条记录,记录每次刷卡的信息
最后一次刷卡的信息在最前面(也就是头上),等于是按AddItem的先后顺序的逆序排列
当满100条后,将最后(最老)的记录删除,并仍在最前面加入新的一条记录
像队列的FIFO机制一样VB新手,说明和比喻必有粗糙之处,望各位不吝赐教 :D
list1.list(i)=list1.list(i-1)(将每条记录下移一位)
next
list1.list(0)=你要添加的新内容
当到大于100的时候for i=1 to 100
list1.list(i)=list1.list(i-1)(将每条记录下移一位)
next
list1.list(0)=你要添加的新内容(将最上面的一条赋值)
List1.AddItem Now(), 0
If List1.ListCount > 100 Then
For i = 100 To List1.ListCount - 1
List1.RemoveItem i
Next
End If
End Sub在超过一百条删除时,我用了一个循环,是因为怕你的程序在别的地方会增加list的数据,如果你确信你的程序中没有这种情况,只有command1能够增删list的数据,那么上面的循环语句可以省略,简化成一句:
If List1.ListCount > 10 Then List1.RemoveItem 100
List1.AddItem Now(), 0
If List1.ListCount > 100 Then
For i = 100 To List1.ListCount - 1
List1.RemoveItem i
Next
End If
End Sub在超过一百条删除时,我用了一个循环,是因为怕你的程序在别的地方会增加list的数据,如果你确信你的程序中没有这种情况,只有command1能够增删list的数据,那么上面的循环语句可以省略,程序简化成:Private Sub Command1_Click()
List1.AddItem Now(), 0
If List1.ListCount > 100 Then List1.RemoveItem 100
End Sub
list1.additem( 增加一条纪录)
for i=0 to list1.listcount(总数)
list1.list(i+ 1)=list1.list(i)(将每条记录下移一位)
next
list1.list(0)=你要添加的新内容
end if
if list1.listcount > = 100 then
list1.removeitem( 删除最后一条)
list1.additem
for i= 0 to 100
list1.list(i+1)=list1.list(i)(将每条记录下移一位)
next
list1.list(0)=你要添加的新内容(将最上面的一条赋值) end if
再说,用在这里也不合适。
lazycat818(lazycat818)分析的也很好啊,但是似乎绕不开先删除,后添加这条路。
不过还好,这里数据量也不是很大,凑合着用吧 :P我最后自己写的代码是:
StateList.ListCount
While StateList.ListCount> 0
i = StateList.ListCount- 1
If i < 100 Then
StateList.AddItem StateList.List(i), StateList.ListCount
End If
StateList.RemoveItem (i)
StateList.ListCount = StateList.ListCount- 1
Wend
StateList.AddItem ListString, 0呵呵,VB刚开始学用了一个星期,现在东西做完了,不知道什么时候会再用了,也许VB.net吧:D再次感谢大家!